{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208be3296e993c9673e3c5bd5725f4fe3b5da29801b223c6b18683e20bf0f949f364736f6c63430008180033","sourceMap":"922:21612:37:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;922:21612:37;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208be3296e993c9673e3c5bd5725f4fe3b5da29801b223c6b18683e20bf0f949f364736f6c63430008180033","sourceMap":"922:21612:37:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"MUD (https://mud.dev) by Lattice (https://lattice.xyz)\",\"details\":\"The primary purpose is to abstract the storage details, such that the      calling function doesn't need to know if it's interacting with its own      storage or with an external contract's storage.\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"STORAGE_SLOT\":{\"details\":\"Internal constant representing the storage slot used by the library.\"}},\"title\":\"StoreSwitch Library\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library serves as an interface switch to interact with the store,         either by directing calls to itself or to a designated external store.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":\"StoreSwitch\"},\"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/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"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/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"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/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"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/StoreSwitch.sol":"StoreSwitch"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"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/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"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/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"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/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"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/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"node_modules/@latticexyz/store/src/StoreSwitch.sol","id":14559,"exportedSymbols":{"EncodedLengths":[7251],"FieldLayout":[7885],"IStore":[8658],"IStoreHook":[8979],"ResourceId":[9486],"Schema":[9581],"StoreCore":[12701],"StoreSwitch":[14558]},"nodeType":"SourceUnit","src":"32:22503:37","nodes":[{"id":13235,"nodeType":"PragmaDirective","src":"32:25:37","nodes":[],"literals":["solidity",">=","0.8",".24"]},{"id":13237,"nodeType":"ImportDirective","src":"59:38:37","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/IStore.sol","file":"./IStore.sol","nameLocation":"-1:-1:-1","scope":14559,"sourceUnit":8659,"symbolAliases":[{"foreign":{"id":13236,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"68:6:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13239,"nodeType":"ImportDirective","src":"98:59:37","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/EncodedLengths.sol","file":"../src/EncodedLengths.sol","nameLocation":"-1:-1:-1","scope":14559,"sourceUnit":7873,"symbolAliases":[{"foreign":{"id":13238,"name":"EncodedLengths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7251,"src":"107:14:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13241,"nodeType":"ImportDirective","src":"158:46:37","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/IStoreHook.sol","file":"./IStoreHook.sol","nameLocation":"-1:-1:-1","scope":14559,"sourceUnit":8980,"symbolAliases":[{"foreign":{"id":13240,"name":"IStoreHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"167:10:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13243,"nodeType":"ImportDirective","src":"205:44:37","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/StoreCore.sol","file":"./StoreCore.sol","nameLocation":"-1:-1:-1","scope":14559,"sourceUnit":13234,"symbolAliases":[{"foreign":{"id":13242,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"214:9:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13245,"nodeType":"ImportDirective","src":"250:38:37","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/Schema.sol","file":"./Schema.sol","nameLocation":"-1:-1:-1","scope":14559,"sourceUnit":10058,"symbolAliases":[{"foreign":{"id":13244,"name":"Schema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9581,"src":"259:6:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13247,"nodeType":"ImportDirective","src":"289:48:37","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/FieldLayout.sol","file":"./FieldLayout.sol","nameLocation":"-1:-1:-1","scope":14559,"sourceUnit":8362,"symbolAliases":[{"foreign":{"id":13246,"name":"FieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7885,"src":"298:11:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13249,"nodeType":"ImportDirective","src":"338:54:37","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/EncodedLengths.sol","file":"./EncodedLengths.sol","nameLocation":"-1:-1:-1","scope":14559,"sourceUnit":7873,"symbolAliases":[{"foreign":{"id":13248,"name":"EncodedLengths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7251,"src":"347:14:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13251,"nodeType":"ImportDirective","src":"393:46:37","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/ResourceId.sol","file":"./ResourceId.sol","nameLocation":"-1:-1:-1","scope":14559,"sourceUnit":9568,"symbolAliases":[{"foreign":{"id":13250,"name":"ResourceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9486,"src":"402:10:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":14558,"nodeType":"ContractDefinition","src":"922:21612:37","nodes":[{"id":13258,"nodeType":"VariableDeclaration","src":"1026:82:37","nodes":[],"constant":true,"documentation":{"id":13253,"nodeType":"StructuredDocumentation","src":"946:77:37","text":"@dev Internal constant representing the storage slot used by the library."},"mutability":"constant","name":"STORAGE_SLOT","nameLocation":"1051:12:37","scope":14558,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13254,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1026:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"6d75642e73746f72652e73746f726167652e53746f7265537769746368","id":13256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1076:31:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175","typeString":"literal_string \"mud.store.storage.StoreSwitch\""},"value":"mud.store.storage.StoreSwitch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175","typeString":"literal_string \"mud.store.storage.StoreSwitch\""}],"id":13255,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1066:9:37","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":13257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1066:42:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":13262,"nodeType":"StructDefinition","src":"1206:100:37","nodes":[],"canonicalName":"StoreSwitch.StorageSlotLayout","documentation":{"id":13259,"nodeType":"StructuredDocumentation","src":"1113:90:37","text":" @dev Represents the layout of the storage slot (currently just the address)"},"members":[{"constant":false,"id":13261,"mutability":"mutable","name":"storeAddress","nameLocation":"1245:12:37","nodeType":"VariableDeclaration","scope":13262,"src":"1237:20:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13260,"name":"address","nodeType":"ElementaryTypeName","src":"1237:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"StorageSlotLayout","nameLocation":"1213:17:37","scope":14558,"visibility":"public"},{"id":13275,"nodeType":"FunctionDefinition","src":"1408:160:37","nodes":[],"body":{"id":13274,"nodeType":"Block","src":"1483:85:37","nodes":[],"statements":[{"assignments":[13270],"declarations":[{"constant":false,"id":13270,"mutability":"mutable","name":"slot","nameLocation":"1497:4:37","nodeType":"VariableDeclaration","scope":13274,"src":"1489:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13269,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1489:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":13272,"initialValue":{"id":13271,"name":"STORAGE_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13258,"src":"1504:12:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1489:27:37"},{"AST":{"nativeSrc":"1531:33:37","nodeType":"YulBlock","src":"1531:33:37","statements":[{"nativeSrc":"1539:19:37","nodeType":"YulAssignment","src":"1539:19:37","value":{"name":"slot","nativeSrc":"1554:4:37","nodeType":"YulIdentifier","src":"1554:4:37"},"variableNames":[{"name":"layout.slot","nativeSrc":"1539:11:37","nodeType":"YulIdentifier","src":"1539:11:37"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":13267,"isOffset":false,"isSlot":true,"src":"1539:11:37","suffix":"slot","valueSize":1},{"declaration":13270,"isOffset":false,"isSlot":false,"src":"1554:4:37","valueSize":1}],"id":13273,"nodeType":"InlineAssembly","src":"1522:42:37"}]},"documentation":{"id":13263,"nodeType":"StructuredDocumentation","src":"1310:95:37","text":" @notice Gets the storage layout.\n @return layout The current storage layout."},"implemented":true,"kind":"function","modifiers":[],"name":"_layout","nameLocation":"1417:7:37","parameters":{"id":13264,"nodeType":"ParameterList","parameters":[],"src":"1424:2:37"},"returnParameters":{"id":13268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13267,"mutability":"mutable","name":"layout","nameLocation":"1475:6:37","nodeType":"VariableDeclaration","scope":13275,"src":"1449:32:37","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StorageSlotLayout_$13262_storage_ptr","typeString":"struct StoreSwitch.StorageSlotLayout"},"typeName":{"id":13266,"nodeType":"UserDefinedTypeName","pathNode":{"id":13265,"name":"StorageSlotLayout","nameLocations":["1449:17:37"],"nodeType":"IdentifierPath","referencedDeclaration":13262,"src":"1449:17:37"},"referencedDeclaration":13262,"src":"1449:17:37","typeDescriptions":{"typeIdentifier":"t_struct$_StorageSlotLayout_$13262_storage_ptr","typeString":"struct StoreSwitch.StorageSlotLayout"}},"visibility":"internal"}],"src":"1448:34:37"},"scope":14558,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":13302,"nodeType":"FunctionDefinition","src":"1836:227:37","nodes":[],"body":{"id":13301,"nodeType":"Block","src":"1895:168:37","nodes":[],"statements":[{"assignments":[13282],"declarations":[{"constant":false,"id":13282,"mutability":"mutable","name":"_storeAddress","nameLocation":"1909:13:37","nodeType":"VariableDeclaration","scope":13301,"src":"1901:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13281,"name":"address","nodeType":"ElementaryTypeName","src":"1901:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13286,"initialValue":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13283,"name":"_layout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13275,"src":"1925:7:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_StorageSlotLayout_$13262_storage_ptr_$","typeString":"function () pure returns (struct StoreSwitch.StorageSlotLayout storage pointer)"}},"id":13284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1925:9:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorageSlotLayout_$13262_storage_ptr","typeString":"struct StoreSwitch.StorageSlotLayout storage pointer"}},"id":13285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1935:12:37","memberName":"storeAddress","nodeType":"MemberAccess","referencedDeclaration":13261,"src":"1925:22:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1901:46:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13287,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13282,"src":"1957:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":13290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1982:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1974:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13288,"name":"address","nodeType":"ElementaryTypeName","src":"1974:7:37","typeDescriptions":{}}},"id":13291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1974:10:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1957:27:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13299,"nodeType":"Block","src":"2024:35:37","statements":[{"expression":{"id":13297,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13282,"src":"2039:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":13280,"id":13298,"nodeType":"Return","src":"2032:20:37"}]},"id":13300,"nodeType":"IfStatement","src":"1953:106:37","trueBody":{"id":13296,"nodeType":"Block","src":"1986:32:37","statements":[{"expression":{"expression":{"id":13293,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2001:3:37","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2005:6:37","memberName":"sender","nodeType":"MemberAccess","src":"2001:10:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":13280,"id":13295,"nodeType":"Return","src":"1994:17:37"}]}}]},"documentation":{"id":13276,"nodeType":"StructuredDocumentation","src":"1572:261:37","text":" @notice Fetch the store address to be used for data operations.\n If _storeAddress is zero, it means that it's uninitialized and\n therefore it's the default (msg.sender).\n @return Address of the store, or `msg.sender` if uninitialized."},"implemented":true,"kind":"function","modifiers":[],"name":"getStoreAddress","nameLocation":"1845:15:37","parameters":{"id":13277,"nodeType":"ParameterList","parameters":[],"src":"1860:2:37"},"returnParameters":{"id":13280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13279,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13302,"src":"1886:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13278,"name":"address","nodeType":"ElementaryTypeName","src":"1886:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1885:9:37"},"scope":14558,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13315,"nodeType":"FunctionDefinition","src":"2311:106:37","nodes":[],"body":{"id":13314,"nodeType":"Block","src":"2368:49:37","nodes":[],"statements":[{"expression":{"id":13312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13308,"name":"_layout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13275,"src":"2374:7:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_StorageSlotLayout_$13262_storage_ptr_$","typeString":"function () pure returns (struct StoreSwitch.StorageSlotLayout storage pointer)"}},"id":13309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2374:9:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorageSlotLayout_$13262_storage_ptr","typeString":"struct StoreSwitch.StorageSlotLayout storage pointer"}},"id":13310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2384:12:37","memberName":"storeAddress","nodeType":"MemberAccess","referencedDeclaration":13261,"src":"2374:22:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13311,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13305,"src":"2399:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2374:38:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13313,"nodeType":"ExpressionStatement","src":"2374:38:37"}]},"documentation":{"id":13303,"nodeType":"StructuredDocumentation","src":"2067:241:37","text":" @notice Set the store address for subsequent operations.\n @dev If it stays uninitialized, StoreSwitch falls back to calling store methods on msg.sender.\n @param _storeAddress The address of the external store contract."},"implemented":true,"kind":"function","modifiers":[],"name":"setStoreAddress","nameLocation":"2320:15:37","parameters":{"id":13306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13305,"mutability":"mutable","name":"_storeAddress","nameLocation":"2344:13:37","nodeType":"VariableDeclaration","scope":13315,"src":"2336:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13304,"name":"address","nodeType":"ElementaryTypeName","src":"2336:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2335:23:37"},"returnParameters":{"id":13307,"nodeType":"ParameterList","parameters":[],"src":"2368:0:37"},"scope":14558,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13359,"nodeType":"FunctionDefinition","src":"2690:385:37","nodes":[],"body":{"id":13358,"nodeType":"Block","src":"2796:279:37","nodes":[],"statements":[{"assignments":[13328],"declarations":[{"constant":false,"id":13328,"mutability":"mutable","name":"_storeAddress","nameLocation":"2810:13:37","nodeType":"VariableDeclaration","scope":13358,"src":"2802:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13327,"name":"address","nodeType":"ElementaryTypeName","src":"2802:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13331,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13329,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"2826:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2826:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2802:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13332,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13328,"src":"2853:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":13335,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2878:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":13334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2870:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13333,"name":"address","nodeType":"ElementaryTypeName","src":"2870:7:37","typeDescriptions":{}}},"id":13336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2870:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2853:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13356,"nodeType":"Block","src":"2975:96:37","statements":[{"expression":{"arguments":[{"id":13351,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13319,"src":"3023:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":13352,"name":"hookAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13322,"src":"3032:11:37","typeDescriptions":{"typeIdentifier":"t_contract$_IStoreHook_$8979","typeString":"contract IStoreHook"}},{"id":13353,"name":"enabledHooksBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13324,"src":"3045:18:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_contract$_IStoreHook_$8979","typeString":"contract IStoreHook"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"arguments":[{"id":13348,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13328,"src":"2990:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13347,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"2983:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":13349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2983:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":13350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3005:17:37","memberName":"registerStoreHook","nodeType":"MemberAccess","referencedDeclaration":9261,"src":"2983:39:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_contract$_IStoreHook_$8979_$_t_uint8_$returns$__$","typeString":"function (ResourceId,contract IStoreHook,uint8) external"}},"id":13354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2983:81:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13355,"nodeType":"ExpressionStatement","src":"2983:81:37"}]},"id":13357,"nodeType":"IfStatement","src":"2849:222:37","trueBody":{"id":13346,"nodeType":"Block","src":"2885:84:37","statements":[{"expression":{"arguments":[{"id":13341,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13319,"src":"2921:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":13342,"name":"hookAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13322,"src":"2930:11:37","typeDescriptions":{"typeIdentifier":"t_contract$_IStoreHook_$8979","typeString":"contract IStoreHook"}},{"id":13343,"name":"enabledHooksBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13324,"src":"2943:18:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_contract$_IStoreHook_$8979","typeString":"contract IStoreHook"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":13338,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"2893:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":13340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2903:17:37","memberName":"registerStoreHook","nodeType":"MemberAccess","referencedDeclaration":11314,"src":"2893:27:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_contract$_IStoreHook_$8979_$_t_uint8_$returns$__$","typeString":"function (ResourceId,contract IStoreHook,uint8)"}},"id":13344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2893:69:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13345,"nodeType":"ExpressionStatement","src":"2893:69:37"}]}}]},"documentation":{"id":13316,"nodeType":"StructuredDocumentation","src":"2421:266:37","text":" @notice Register a store hook for a particular table.\n @param tableId Unique identifier of the table.\n @param hookAddress Address of the hook contract.\n @param enabledHooksBitmap Bitmap representing the hooks which this contract overrides."},"implemented":true,"kind":"function","modifiers":[],"name":"registerStoreHook","nameLocation":"2699:17:37","parameters":{"id":13325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13319,"mutability":"mutable","name":"tableId","nameLocation":"2728:7:37","nodeType":"VariableDeclaration","scope":13359,"src":"2717:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":13318,"nodeType":"UserDefinedTypeName","pathNode":{"id":13317,"name":"ResourceId","nameLocations":["2717:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"2717:10:37"},"referencedDeclaration":9486,"src":"2717:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":13322,"mutability":"mutable","name":"hookAddress","nameLocation":"2748:11:37","nodeType":"VariableDeclaration","scope":13359,"src":"2737:22:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IStoreHook_$8979","typeString":"contract IStoreHook"},"typeName":{"id":13321,"nodeType":"UserDefinedTypeName","pathNode":{"id":13320,"name":"IStoreHook","nameLocations":["2737:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":8979,"src":"2737:10:37"},"referencedDeclaration":8979,"src":"2737:10:37","typeDescriptions":{"typeIdentifier":"t_contract$_IStoreHook_$8979","typeString":"contract IStoreHook"}},"visibility":"internal"},{"constant":false,"id":13324,"mutability":"mutable","name":"enabledHooksBitmap","nameLocation":"2767:18:37","nodeType":"VariableDeclaration","scope":13359,"src":"2761:24:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":13323,"name":"uint8","nodeType":"ElementaryTypeName","src":"2761:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2716:70:37"},"returnParameters":{"id":13326,"nodeType":"ParameterList","parameters":[],"src":"2796:0:37"},"scope":14558,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13399,"nodeType":"FunctionDefinition","src":"3276:325:37","nodes":[],"body":{"id":13398,"nodeType":"Block","src":"3358:243:37","nodes":[],"statements":[{"assignments":[13370],"declarations":[{"constant":false,"id":13370,"mutability":"mutable","name":"_storeAddress","nameLocation":"3372:13:37","nodeType":"VariableDeclaration","scope":13398,"src":"3364:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13369,"name":"address","nodeType":"ElementaryTypeName","src":"3364:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13373,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13371,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"3388:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3388:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3364:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13374,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13370,"src":"3415:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":13377,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3440:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":13376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3432:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13375,"name":"address","nodeType":"ElementaryTypeName","src":"3432:7:37","typeDescriptions":{}}},"id":13378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3432:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3415:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13396,"nodeType":"Block","src":"3519:78:37","statements":[{"expression":{"arguments":[{"id":13392,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13363,"src":"3569:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":13393,"name":"hookAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13366,"src":"3578:11:37","typeDescriptions":{"typeIdentifier":"t_contract$_IStoreHook_$8979","typeString":"contract IStoreHook"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_contract$_IStoreHook_$8979","typeString":"contract IStoreHook"}],"expression":{"arguments":[{"id":13389,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13370,"src":"3534:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13388,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"3527:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":13390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3527:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":13391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3549:19:37","memberName":"unregisterStoreHook","nodeType":"MemberAccess","referencedDeclaration":9270,"src":"3527:41:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_contract$_IStoreHook_$8979_$returns$__$","typeString":"function (ResourceId,contract IStoreHook) external"}},"id":13394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3527:63:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13395,"nodeType":"ExpressionStatement","src":"3527:63:37"}]},"id":13397,"nodeType":"IfStatement","src":"3411:186:37","trueBody":{"id":13387,"nodeType":"Block","src":"3447:66:37","statements":[{"expression":{"arguments":[{"id":13383,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13363,"src":"3485:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":13384,"name":"hookAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13366,"src":"3494:11:37","typeDescriptions":{"typeIdentifier":"t_contract$_IStoreHook_$8979","typeString":"contract IStoreHook"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_contract$_IStoreHook_$8979","typeString":"contract IStoreHook"}],"expression":{"id":13380,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"3455:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":13382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3465:19:37","memberName":"unregisterStoreHook","nodeType":"MemberAccess","referencedDeclaration":11337,"src":"3455:29:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_contract$_IStoreHook_$8979_$returns$__$","typeString":"function (ResourceId,contract IStoreHook)"}},"id":13385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3455:51:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13386,"nodeType":"ExpressionStatement","src":"3455:51:37"}]}}]},"documentation":{"id":13360,"nodeType":"StructuredDocumentation","src":"3079:194:37","text":" @notice Unregister a previously registered store hook.\n @param tableId Unique identifier of the table.\n @param hookAddress Address of the hook contract to be unregistered."},"implemented":true,"kind":"function","modifiers":[],"name":"unregisterStoreHook","nameLocation":"3285:19:37","parameters":{"id":13367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13363,"mutability":"mutable","name":"tableId","nameLocation":"3316:7:37","nodeType":"VariableDeclaration","scope":13399,"src":"3305:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":13362,"nodeType":"UserDefinedTypeName","pathNode":{"id":13361,"name":"ResourceId","nameLocations":["3305:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"3305:10:37"},"referencedDeclaration":9486,"src":"3305:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":13366,"mutability":"mutable","name":"hookAddress","nameLocation":"3336:11:37","nodeType":"VariableDeclaration","scope":13399,"src":"3325:22:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IStoreHook_$8979","typeString":"contract IStoreHook"},"typeName":{"id":13365,"nodeType":"UserDefinedTypeName","pathNode":{"id":13364,"name":"IStoreHook","nameLocations":["3325:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":8979,"src":"3325:10:37"},"referencedDeclaration":8979,"src":"3325:10:37","typeDescriptions":{"typeIdentifier":"t_contract$_IStoreHook_$8979","typeString":"contract IStoreHook"}},"visibility":"internal"}],"src":"3304:44:37"},"returnParameters":{"id":13368,"nodeType":"ParameterList","parameters":[],"src":"3358:0:37"},"scope":14558,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13440,"nodeType":"FunctionDefinition","src":"3829:327:37","nodes":[],"body":{"id":13439,"nodeType":"Block","src":"3921:235:37","nodes":[],"statements":[{"assignments":[13410],"declarations":[{"constant":false,"id":13410,"mutability":"mutable","name":"_storeAddress","nameLocation":"3935:13:37","nodeType":"VariableDeclaration","scope":13439,"src":"3927:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13409,"name":"address","nodeType":"ElementaryTypeName","src":"3927:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13413,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13411,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"3951:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3951:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3927:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13414,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13410,"src":"3978:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":13417,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4003:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":13416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3995:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13415,"name":"address","nodeType":"ElementaryTypeName","src":"3995:7:37","typeDescriptions":{}}},"id":13418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3995:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3978:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13437,"nodeType":"Block","src":"4078:74:37","statements":[{"expression":{"id":13435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13428,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13407,"src":"4086:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":13433,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13403,"src":"4137:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}],"expression":{"arguments":[{"id":13430,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13410,"src":"4107:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13429,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"4100:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":13431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4100:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":13432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4122:14:37","memberName":"getFieldLayout","nodeType":"MemberAccess","referencedDeclaration":9037,"src":"4100:36:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_userDefinedValueType$_ResourceId_$9486_$returns$_t_userDefinedValueType$_FieldLayout_$7885_$","typeString":"function (ResourceId) view external returns (FieldLayout)"}},"id":13434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4100:45:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"src":"4086:59:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"id":13436,"nodeType":"ExpressionStatement","src":"4086:59:37"}]},"id":13438,"nodeType":"IfStatement","src":"3974:178:37","trueBody":{"id":13427,"nodeType":"Block","src":"4010:62:37","statements":[{"expression":{"id":13425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13420,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13407,"src":"4018:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":13423,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13403,"src":"4057:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}],"expression":{"id":13421,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"4032:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":13422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4042:14:37","memberName":"getFieldLayout","nodeType":"MemberAccess","referencedDeclaration":10895,"src":"4032:24:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$9486_$returns$_t_userDefinedValueType$_FieldLayout_$7885_$","typeString":"function (ResourceId) view returns (FieldLayout)"}},"id":13424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4032:33:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"src":"4018:47:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"id":13426,"nodeType":"ExpressionStatement","src":"4018:47:37"}]}}]},"documentation":{"id":13400,"nodeType":"StructuredDocumentation","src":"3605:221:37","text":" @dev Fetches the field layout for a specified table.\n @param tableId The ID of the table for which to retrieve the field layout.\n @return fieldLayout The layout of the fields in the specified table."},"implemented":true,"kind":"function","modifiers":[],"name":"getFieldLayout","nameLocation":"3838:14:37","parameters":{"id":13404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13403,"mutability":"mutable","name":"tableId","nameLocation":"3864:7:37","nodeType":"VariableDeclaration","scope":13440,"src":"3853:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":13402,"nodeType":"UserDefinedTypeName","pathNode":{"id":13401,"name":"ResourceId","nameLocations":["3853:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"3853:10:37"},"referencedDeclaration":9486,"src":"3853:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"}],"src":"3852:20:37"},"returnParameters":{"id":13408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13407,"mutability":"mutable","name":"fieldLayout","nameLocation":"3908:11:37","nodeType":"VariableDeclaration","scope":13440,"src":"3896:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"},"typeName":{"id":13406,"nodeType":"UserDefinedTypeName","pathNode":{"id":13405,"name":"FieldLayout","nameLocations":["3896:11:37"],"nodeType":"IdentifierPath","referencedDeclaration":7885,"src":"3896:11:37"},"referencedDeclaration":7885,"src":"3896:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"visibility":"internal"}],"src":"3895:25:37"},"scope":14558,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13481,"nodeType":"FunctionDefinition","src":"4383:322:37","nodes":[],"body":{"id":13480,"nodeType":"Block","src":"4470:235:37","nodes":[],"statements":[{"assignments":[13451],"declarations":[{"constant":false,"id":13451,"mutability":"mutable","name":"_storeAddress","nameLocation":"4484:13:37","nodeType":"VariableDeclaration","scope":13480,"src":"4476:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13450,"name":"address","nodeType":"ElementaryTypeName","src":"4476:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13454,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13452,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"4500:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4500:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4476:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13455,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13451,"src":"4527:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":13458,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4552:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":13457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4544:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13456,"name":"address","nodeType":"ElementaryTypeName","src":"4544:7:37","typeDescriptions":{}}},"id":13459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4544:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4527:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13478,"nodeType":"Block","src":"4627:74:37","statements":[{"expression":{"id":13476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13469,"name":"valueSchema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13448,"src":"4635:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":13474,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13444,"src":"4686:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}],"expression":{"arguments":[{"id":13471,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13451,"src":"4656:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13470,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"4649:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":13472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4649:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":13473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4671:14:37","memberName":"getValueSchema","nodeType":"MemberAccess","referencedDeclaration":9046,"src":"4649:36:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_userDefinedValueType$_ResourceId_$9486_$returns$_t_userDefinedValueType$_Schema_$9581_$","typeString":"function (ResourceId) view external returns (Schema)"}},"id":13475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4649:45:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"src":"4635:59:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"id":13477,"nodeType":"ExpressionStatement","src":"4635:59:37"}]},"id":13479,"nodeType":"IfStatement","src":"4523:178:37","trueBody":{"id":13468,"nodeType":"Block","src":"4559:62:37","statements":[{"expression":{"id":13466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13461,"name":"valueSchema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13448,"src":"4567:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":13464,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13444,"src":"4606:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}],"expression":{"id":13462,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"4581:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":13463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4591:14:37","memberName":"getValueSchema","nodeType":"MemberAccess","referencedDeclaration":10969,"src":"4581:24:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$9486_$returns$_t_userDefinedValueType$_Schema_$9581_$","typeString":"function (ResourceId) view returns (Schema)"}},"id":13465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4581:33:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"src":"4567:47:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"id":13467,"nodeType":"ExpressionStatement","src":"4567:47:37"}]}}]},"documentation":{"id":13441,"nodeType":"StructuredDocumentation","src":"4160:220:37","text":" @dev Retrieves the value schema for a specified table.\n @param tableId The ID of the table for which to retrieve the value schema.\n @return valueSchema The schema for values in the specified table."},"implemented":true,"kind":"function","modifiers":[],"name":"getValueSchema","nameLocation":"4392:14:37","parameters":{"id":13445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13444,"mutability":"mutable","name":"tableId","nameLocation":"4418:7:37","nodeType":"VariableDeclaration","scope":13481,"src":"4407:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":13443,"nodeType":"UserDefinedTypeName","pathNode":{"id":13442,"name":"ResourceId","nameLocations":["4407:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"4407:10:37"},"referencedDeclaration":9486,"src":"4407:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"}],"src":"4406:20:37"},"returnParameters":{"id":13449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13448,"mutability":"mutable","name":"valueSchema","nameLocation":"4457:11:37","nodeType":"VariableDeclaration","scope":13481,"src":"4450:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"},"typeName":{"id":13447,"nodeType":"UserDefinedTypeName","pathNode":{"id":13446,"name":"Schema","nameLocations":["4450:6:37"],"nodeType":"IdentifierPath","referencedDeclaration":9581,"src":"4450:6:37"},"referencedDeclaration":9581,"src":"4450:6:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"visibility":"internal"}],"src":"4449:20:37"},"scope":14558,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13522,"nodeType":"FunctionDefinition","src":"4924:310:37","nodes":[],"body":{"id":13521,"nodeType":"Block","src":"5007:227:37","nodes":[],"statements":[{"assignments":[13492],"declarations":[{"constant":false,"id":13492,"mutability":"mutable","name":"_storeAddress","nameLocation":"5021:13:37","nodeType":"VariableDeclaration","scope":13521,"src":"5013:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13491,"name":"address","nodeType":"ElementaryTypeName","src":"5013:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13495,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13493,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"5037:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5037:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5013:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13496,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13492,"src":"5064:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":13499,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5089:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":13498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5081:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13497,"name":"address","nodeType":"ElementaryTypeName","src":"5081:7:37","typeDescriptions":{}}},"id":13500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5081:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5064:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13519,"nodeType":"Block","src":"5160:70:37","statements":[{"expression":{"id":13517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13510,"name":"keySchema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13489,"src":"5168:9:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":13515,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13485,"src":"5215:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}],"expression":{"arguments":[{"id":13512,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13492,"src":"5187:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13511,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"5180:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":13513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5180:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":13514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5202:12:37","memberName":"getKeySchema","nodeType":"MemberAccess","referencedDeclaration":9055,"src":"5180:34:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_userDefinedValueType$_ResourceId_$9486_$returns$_t_userDefinedValueType$_Schema_$9581_$","typeString":"function (ResourceId) view external returns (Schema)"}},"id":13516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5180:43:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"src":"5168:55:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"id":13518,"nodeType":"ExpressionStatement","src":"5168:55:37"}]},"id":13520,"nodeType":"IfStatement","src":"5060:170:37","trueBody":{"id":13509,"nodeType":"Block","src":"5096:58:37","statements":[{"expression":{"id":13507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13502,"name":"keySchema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13489,"src":"5104:9:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":13505,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13485,"src":"5139:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}],"expression":{"id":13503,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"5116:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":13504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5126:12:37","memberName":"getKeySchema","nodeType":"MemberAccess","referencedDeclaration":10933,"src":"5116:22:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$9486_$returns$_t_userDefinedValueType$_Schema_$9581_$","typeString":"function (ResourceId) view returns (Schema)"}},"id":13506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5116:31:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"src":"5104:43:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"id":13508,"nodeType":"ExpressionStatement","src":"5104:43:37"}]}}]},"documentation":{"id":13482,"nodeType":"StructuredDocumentation","src":"4709:212:37","text":" @dev Retrieves the key schema for a specified table.\n @param tableId The ID of the table for which to retrieve the key schema.\n @return keySchema The schema for keys in the specified table."},"implemented":true,"kind":"function","modifiers":[],"name":"getKeySchema","nameLocation":"4933:12:37","parameters":{"id":13486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13485,"mutability":"mutable","name":"tableId","nameLocation":"4957:7:37","nodeType":"VariableDeclaration","scope":13522,"src":"4946:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":13484,"nodeType":"UserDefinedTypeName","pathNode":{"id":13483,"name":"ResourceId","nameLocations":["4946:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"4946:10:37"},"referencedDeclaration":9486,"src":"4946:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"}],"src":"4945:20:37"},"returnParameters":{"id":13490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13489,"mutability":"mutable","name":"keySchema","nameLocation":"4996:9:37","nodeType":"VariableDeclaration","scope":13522,"src":"4989:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"},"typeName":{"id":13488,"nodeType":"UserDefinedTypeName","pathNode":{"id":13487,"name":"Schema","nameLocations":["4989:6:37"],"nodeType":"IdentifierPath","referencedDeclaration":9581,"src":"4989:6:37"},"referencedDeclaration":9581,"src":"4989:6:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"visibility":"internal"}],"src":"4988:18:37"},"scope":14558,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13582,"nodeType":"FunctionDefinition","src":"5644:520:37","nodes":[],"body":{"id":13581,"nodeType":"Block","src":"5841:323:37","nodes":[],"statements":[{"assignments":[13545],"declarations":[{"constant":false,"id":13545,"mutability":"mutable","name":"_storeAddress","nameLocation":"5855:13:37","nodeType":"VariableDeclaration","scope":13581,"src":"5847:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13544,"name":"address","nodeType":"ElementaryTypeName","src":"5847:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13548,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13546,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"5871:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5871:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5847:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13549,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13545,"src":"5898:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":13552,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5923:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":13551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5915:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13550,"name":"address","nodeType":"ElementaryTypeName","src":"5915:7:37","typeDescriptions":{}}},"id":13553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5915:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5898:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13579,"nodeType":"Block","src":"6042:118:37","statements":[{"expression":{"arguments":[{"id":13571,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13526,"src":"6086:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":13572,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13529,"src":"6095:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},{"id":13573,"name":"keySchema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13532,"src":"6108:9:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},{"id":13574,"name":"valueSchema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13535,"src":"6119:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},{"id":13575,"name":"keyNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13538,"src":"6132:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"id":13576,"name":"fieldNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13541,"src":"6142:10:37","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"},{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"},{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}],"expression":{"arguments":[{"id":13568,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13545,"src":"6057:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13567,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"6050:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":13569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6050:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":13570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6072:13:37","memberName":"registerTable","nodeType":"MemberAccess","referencedDeclaration":9250,"src":"6050:35:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_userDefinedValueType$_FieldLayout_$7885_$_t_userDefinedValueType$_Schema_$9581_$_t_userDefinedValueType$_Schema_$9581_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (ResourceId,FieldLayout,Schema,Schema,string memory[] memory,string memory[] memory) external"}},"id":13577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6050:103:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13578,"nodeType":"ExpressionStatement","src":"6050:103:37"}]},"id":13580,"nodeType":"IfStatement","src":"5894:266:37","trueBody":{"id":13566,"nodeType":"Block","src":"5930:106:37","statements":[{"expression":{"arguments":[{"id":13558,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13526,"src":"5962:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":13559,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13529,"src":"5971:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},{"id":13560,"name":"keySchema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13532,"src":"5984:9:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},{"id":13561,"name":"valueSchema","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13535,"src":"5995:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},{"id":13562,"name":"keyNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13538,"src":"6008:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"id":13563,"name":"fieldNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13541,"src":"6018:10:37","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"},{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"},{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}],"expression":{"id":13555,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"5938:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":13557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5948:13:37","memberName":"registerTable","nodeType":"MemberAccess","referencedDeclaration":11243,"src":"5938:23:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_userDefinedValueType$_FieldLayout_$7885_$_t_userDefinedValueType$_Schema_$9581_$_t_userDefinedValueType$_Schema_$9581_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (ResourceId,FieldLayout,Schema,Schema,string memory[] memory,string memory[] memory)"}},"id":13564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5938:91:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13565,"nodeType":"ExpressionStatement","src":"5938:91:37"}]}}]},"documentation":{"id":13523,"nodeType":"StructuredDocumentation","src":"5238:403:37","text":" @dev Registers a table with specified configurations.\n @param tableId The ID of the table to register.\n @param fieldLayout The layout of the fields for the table.\n @param keySchema The schema for keys in the table.\n @param valueSchema The schema for values in the table.\n @param keyNames Names of keys in the table.\n @param fieldNames Names of fields in the table."},"implemented":true,"kind":"function","modifiers":[],"name":"registerTable","nameLocation":"5653:13:37","parameters":{"id":13542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13526,"mutability":"mutable","name":"tableId","nameLocation":"5683:7:37","nodeType":"VariableDeclaration","scope":13582,"src":"5672:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":13525,"nodeType":"UserDefinedTypeName","pathNode":{"id":13524,"name":"ResourceId","nameLocations":["5672:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"5672:10:37"},"referencedDeclaration":9486,"src":"5672:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":13529,"mutability":"mutable","name":"fieldLayout","nameLocation":"5708:11:37","nodeType":"VariableDeclaration","scope":13582,"src":"5696:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"},"typeName":{"id":13528,"nodeType":"UserDefinedTypeName","pathNode":{"id":13527,"name":"FieldLayout","nameLocations":["5696:11:37"],"nodeType":"IdentifierPath","referencedDeclaration":7885,"src":"5696:11:37"},"referencedDeclaration":7885,"src":"5696:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"visibility":"internal"},{"constant":false,"id":13532,"mutability":"mutable","name":"keySchema","nameLocation":"5732:9:37","nodeType":"VariableDeclaration","scope":13582,"src":"5725:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"},"typeName":{"id":13531,"nodeType":"UserDefinedTypeName","pathNode":{"id":13530,"name":"Schema","nameLocations":["5725:6:37"],"nodeType":"IdentifierPath","referencedDeclaration":9581,"src":"5725:6:37"},"referencedDeclaration":9581,"src":"5725:6:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"visibility":"internal"},{"constant":false,"id":13535,"mutability":"mutable","name":"valueSchema","nameLocation":"5754:11:37","nodeType":"VariableDeclaration","scope":13582,"src":"5747:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"},"typeName":{"id":13534,"nodeType":"UserDefinedTypeName","pathNode":{"id":13533,"name":"Schema","nameLocations":["5747:6:37"],"nodeType":"IdentifierPath","referencedDeclaration":9581,"src":"5747:6:37"},"referencedDeclaration":9581,"src":"5747:6:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Schema_$9581","typeString":"Schema"}},"visibility":"internal"},{"constant":false,"id":13538,"mutability":"mutable","name":"keyNames","nameLocation":"5787:8:37","nodeType":"VariableDeclaration","scope":13582,"src":"5771:24:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":13536,"name":"string","nodeType":"ElementaryTypeName","src":"5771:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":13537,"nodeType":"ArrayTypeName","src":"5771:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":13541,"mutability":"mutable","name":"fieldNames","nameLocation":"5817:10:37","nodeType":"VariableDeclaration","scope":13582,"src":"5801:26:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":13539,"name":"string","nodeType":"ElementaryTypeName","src":"5801:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":13540,"nodeType":"ArrayTypeName","src":"5801:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"5666:165:37"},"returnParameters":{"id":13543,"nodeType":"ParameterList","parameters":[],"src":"5841:0:37"},"scope":14558,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13635,"nodeType":"FunctionDefinition","src":"6458:480:37","nodes":[],"body":{"id":13634,"nodeType":"Block","src":"6639:299:37","nodes":[],"statements":[{"assignments":[13600],"declarations":[{"constant":false,"id":13600,"mutability":"mutable","name":"_storeAddress","nameLocation":"6653:13:37","nodeType":"VariableDeclaration","scope":13634,"src":"6645:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13599,"name":"address","nodeType":"ElementaryTypeName","src":"6645:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13603,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13601,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"6669:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6669:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6645:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13604,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13600,"src":"6696:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":13607,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6721:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":13606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6713:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13605,"name":"address","nodeType":"ElementaryTypeName","src":"6713:7:37","typeDescriptions":{}}},"id":13608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6713:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6696:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13632,"nodeType":"Block","src":"6828:106:37","statements":[{"expression":{"arguments":[{"id":13625,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13586,"src":"6868:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":13626,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13589,"src":"6877:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":13627,"name":"staticData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13591,"src":"6887:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":13628,"name":"encodedLengths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13594,"src":"6899:14:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_EncodedLengths_$7251","typeString":"EncodedLengths"}},{"id":13629,"name":"dynamicData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13596,"src":"6915:11:37","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":{"arguments":[{"id":13622,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13600,"src":"6843:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13621,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"6836:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":13623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6836:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":13624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6858:9:37","memberName":"setRecord","nodeType":"MemberAccess","referencedDeclaration":9300,"src":"6836:31:37","typeDescriptions":{"typeIdentifier":"t_function_external_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) external"}},"id":13630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6836:91:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13631,"nodeType":"ExpressionStatement","src":"6836:91:37"}]},"id":13633,"nodeType":"IfStatement","src":"6692:242:37","trueBody":{"id":13620,"nodeType":"Block","src":"6728:94:37","statements":[{"expression":{"arguments":[{"id":13613,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13586,"src":"6756:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":13614,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13589,"src":"6765:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":13615,"name":"staticData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13591,"src":"6775:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":13616,"name":"encodedLengths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13594,"src":"6787:14:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_EncodedLengths_$7251","typeString":"EncodedLengths"}},{"id":13617,"name":"dynamicData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13596,"src":"6803:11:37","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":13610,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"6736:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":13612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6746:9:37","memberName":"setRecord","nodeType":"MemberAccess","referencedDeclaration":11366,"src":"6736:19:37","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":13618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6736:79:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13619,"nodeType":"ExpressionStatement","src":"6736:79:37"}]}}]},"documentation":{"id":13583,"nodeType":"StructuredDocumentation","src":"6168:287:37","text":" @dev Sets a record in the store.\n @param tableId The table's ID.\n @param keyTuple Array of key values.\n @param staticData Fixed-length fields data.\n @param encodedLengths Encoded lengths for dynamic data.\n @param dynamicData Dynamic-length fields data."},"implemented":true,"kind":"function","modifiers":[],"name":"setRecord","nameLocation":"6467:9:37","parameters":{"id":13597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13586,"mutability":"mutable","name":"tableId","nameLocation":"6493:7:37","nodeType":"VariableDeclaration","scope":13635,"src":"6482:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":13585,"nodeType":"UserDefinedTypeName","pathNode":{"id":13584,"name":"ResourceId","nameLocations":["6482:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"6482:10:37"},"referencedDeclaration":9486,"src":"6482:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":13589,"mutability":"mutable","name":"keyTuple","nameLocation":"6523:8:37","nodeType":"VariableDeclaration","scope":13635,"src":"6506:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13587,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6506:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13588,"nodeType":"ArrayTypeName","src":"6506:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":13591,"mutability":"mutable","name":"staticData","nameLocation":"6550:10:37","nodeType":"VariableDeclaration","scope":13635,"src":"6537:23:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13590,"name":"bytes","nodeType":"ElementaryTypeName","src":"6537:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13594,"mutability":"mutable","name":"encodedLengths","nameLocation":"6581:14:37","nodeType":"VariableDeclaration","scope":13635,"src":"6566:29:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_EncodedLengths_$7251","typeString":"EncodedLengths"},"typeName":{"id":13593,"nodeType":"UserDefinedTypeName","pathNode":{"id":13592,"name":"EncodedLengths","nameLocations":["6566:14:37"],"nodeType":"IdentifierPath","referencedDeclaration":7251,"src":"6566:14:37"},"referencedDeclaration":7251,"src":"6566:14:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_EncodedLengths_$7251","typeString":"EncodedLengths"}},"visibility":"internal"},{"constant":false,"id":13596,"mutability":"mutable","name":"dynamicData","nameLocation":"6614:11:37","nodeType":"VariableDeclaration","scope":13635,"src":"6601:24:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13595,"name":"bytes","nodeType":"ElementaryTypeName","src":"6601:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6476:153:37"},"returnParameters":{"id":13598,"nodeType":"ParameterList","parameters":[],"src":"6639:0:37"},"scope":14558,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13683,"nodeType":"FunctionDefinition","src":"7297:372:37","nodes":[],"body":{"id":13682,"nodeType":"Block","src":"7412:257:37","nodes":[],"statements":[{"assignments":[13650],"declarations":[{"constant":false,"id":13650,"mutability":"mutable","name":"_storeAddress","nameLocation":"7426:13:37","nodeType":"VariableDeclaration","scope":13682,"src":"7418:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13649,"name":"address","nodeType":"ElementaryTypeName","src":"7418:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13653,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13651,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"7442:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7442:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7418:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13654,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13650,"src":"7469:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":13657,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7494:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":13656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7486:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13655,"name":"address","nodeType":"ElementaryTypeName","src":"7486:7:37","typeDescriptions":{}}},"id":13658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7486:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7469:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13680,"nodeType":"Block","src":"7580:85:37","statements":[{"expression":{"arguments":[{"id":13674,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13639,"src":"7627:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":13675,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13642,"src":"7636:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":13676,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13644,"src":"7646:5:37","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":13677,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13646,"src":"7653:4:37","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_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":13671,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13650,"src":"7595:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13670,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"7588:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":13672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7588:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":13673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7610:16:37","memberName":"spliceStaticData","nodeType":"MemberAccess","referencedDeclaration":9313,"src":"7588:38:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint48_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,uint48,bytes memory) external"}},"id":13678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7588:70:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13679,"nodeType":"ExpressionStatement","src":"7588:70:37"}]},"id":13681,"nodeType":"IfStatement","src":"7465:200:37","trueBody":{"id":13669,"nodeType":"Block","src":"7501:73:37","statements":[{"expression":{"arguments":[{"id":13663,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13639,"src":"7536:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":13664,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13642,"src":"7545:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":13665,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13644,"src":"7555:5:37","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":13666,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13646,"src":"7562:4:37","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_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":13660,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"7509:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":13662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7519:16:37","memberName":"spliceStaticData","nodeType":"MemberAccess","referencedDeclaration":11761,"src":"7509:26:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint48_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,uint48,bytes memory)"}},"id":13667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7509:58:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13668,"nodeType":"ExpressionStatement","src":"7509:58:37"}]}}]},"documentation":{"id":13636,"nodeType":"StructuredDocumentation","src":"6942:352:37","text":" @dev Splices the static (fixed length) data for a given table ID and key tuple, starting at a specific point.\n @param tableId The ID of the resource table.\n @param keyTuple An array of bytes32 keys identifying the data record.\n @param start The position to begin splicing.\n @param data The data to splice into the record."},"implemented":true,"kind":"function","modifiers":[],"name":"spliceStaticData","nameLocation":"7306:16:37","parameters":{"id":13647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13639,"mutability":"mutable","name":"tableId","nameLocation":"7334:7:37","nodeType":"VariableDeclaration","scope":13683,"src":"7323:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":13638,"nodeType":"UserDefinedTypeName","pathNode":{"id":13637,"name":"ResourceId","nameLocations":["7323:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"7323:10:37"},"referencedDeclaration":9486,"src":"7323:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":13642,"mutability":"mutable","name":"keyTuple","nameLocation":"7360:8:37","nodeType":"VariableDeclaration","scope":13683,"src":"7343:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13640,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7343:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13641,"nodeType":"ArrayTypeName","src":"7343:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":13644,"mutability":"mutable","name":"start","nameLocation":"7377:5:37","nodeType":"VariableDeclaration","scope":13683,"src":"7370:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":13643,"name":"uint48","nodeType":"ElementaryTypeName","src":"7370:6:37","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":13646,"mutability":"mutable","name":"data","nameLocation":"7397:4:37","nodeType":"VariableDeclaration","scope":13683,"src":"7384:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13645,"name":"bytes","nodeType":"ElementaryTypeName","src":"7384:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7322:80:37"},"returnParameters":{"id":13648,"nodeType":"ParameterList","parameters":[],"src":"7412:0:37"},"scope":14558,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13739,"nodeType":"FunctionDefinition","src":"8207:601:37","nodes":[],"body":{"id":13738,"nodeType":"Block","src":"8407:401:37","nodes":[],"statements":[{"assignments":[13702],"declarations":[{"constant":false,"id":13702,"mutability":"mutable","name":"_storeAddress","nameLocation":"8421:13:37","nodeType":"VariableDeclaration","scope":13738,"src":"8413:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13701,"name":"address","nodeType":"ElementaryTypeName","src":"8413:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13705,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13703,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"8437:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8437:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8413:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13706,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13702,"src":"8464:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":13709,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8489:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":13708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8481:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13707,"name":"address","nodeType":"ElementaryTypeName","src":"8481:7:37","typeDescriptions":{}}},"id":13710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8481:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8464:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13736,"nodeType":"Block","src":"8619:185:37","statements":[{"expression":{"arguments":[{"id":13728,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13687,"src":"8676:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":13729,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13690,"src":"8693:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":13730,"name":"dynamicFieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13692,"src":"8711:17:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":13731,"name":"startWithinField","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13694,"src":"8738:16:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":13732,"name":"deleteCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13696,"src":"8764:11:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":13733,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13698,"src":"8785:4:37","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_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":13725,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13702,"src":"8634:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13724,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"8627:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":13726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8627:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":13727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8649:17:37","memberName":"spliceDynamicData","nodeType":"MemberAccess","referencedDeclaration":9330,"src":"8627:39:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_uint40_$_t_uint40_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,uint8,uint40,uint40,bytes memory) external"}},"id":13734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8627:170:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13735,"nodeType":"ExpressionStatement","src":"8627:170:37"}]},"id":13737,"nodeType":"IfStatement","src":"8460:344:37","trueBody":{"id":13723,"nodeType":"Block","src":"8496:117:37","statements":[{"expression":{"arguments":[{"id":13715,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13687,"src":"8532:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":13716,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13690,"src":"8541:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":13717,"name":"dynamicFieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13692,"src":"8551:17:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":13718,"name":"startWithinField","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13694,"src":"8570:16:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":13719,"name":"deleteCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13696,"src":"8588:11:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":13720,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13698,"src":"8601:4:37","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_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":13712,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"8504:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":13714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8514:17:37","memberName":"spliceDynamicData","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"8504:27:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_uint40_$_t_uint40_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,uint8,uint40,uint40,bytes memory)"}},"id":13721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8504:102:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13722,"nodeType":"ExpressionStatement","src":"8504:102:37"}]}}]},"documentation":{"id":13684,"nodeType":"StructuredDocumentation","src":"7673:531:37","text":" @dev Splices the dynamic data for a given table ID, key tuple, and dynamic field index.\n @param tableId The ID of the resource table.\n @param keyTuple An array of bytes32 keys identifying the data record.\n @param dynamicFieldIndex The index of the dynamic field to splice.\n @param startWithinField The position within the dynamic field to start splicing.\n @param deleteCount The number of bytes to delete starting from the splice point.\n @param data The data to splice into the dynamic field."},"implemented":true,"kind":"function","modifiers":[],"name":"spliceDynamicData","nameLocation":"8216:17:37","parameters":{"id":13699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13687,"mutability":"mutable","name":"tableId","nameLocation":"8250:7:37","nodeType":"VariableDeclaration","scope":13739,"src":"8239:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":13686,"nodeType":"UserDefinedTypeName","pathNode":{"id":13685,"name":"ResourceId","nameLocations":["8239:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"8239:10:37"},"referencedDeclaration":9486,"src":"8239:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":13690,"mutability":"mutable","name":"keyTuple","nameLocation":"8280:8:37","nodeType":"VariableDeclaration","scope":13739,"src":"8263:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13688,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8263:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13689,"nodeType":"ArrayTypeName","src":"8263:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":13692,"mutability":"mutable","name":"dynamicFieldIndex","nameLocation":"8300:17:37","nodeType":"VariableDeclaration","scope":13739,"src":"8294:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":13691,"name":"uint8","nodeType":"ElementaryTypeName","src":"8294:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":13694,"mutability":"mutable","name":"startWithinField","nameLocation":"8330:16:37","nodeType":"VariableDeclaration","scope":13739,"src":"8323:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":13693,"name":"uint40","nodeType":"ElementaryTypeName","src":"8323:6:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":13696,"mutability":"mutable","name":"deleteCount","nameLocation":"8359:11:37","nodeType":"VariableDeclaration","scope":13739,"src":"8352:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":13695,"name":"uint40","nodeType":"ElementaryTypeName","src":"8352:6:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":13698,"mutability":"mutable","name":"data","nameLocation":"8389:4:37","nodeType":"VariableDeclaration","scope":13739,"src":"8376:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13697,"name":"bytes","nodeType":"ElementaryTypeName","src":"8376:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8233:164:37"},"returnParameters":{"id":13700,"nodeType":"ParameterList","parameters":[],"src":"8407:0:37"},"scope":14558,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13787,"nodeType":"FunctionDefinition","src":"9146:362:37","nodes":[],"body":{"id":13786,"nodeType":"Block","src":"9257:251:37","nodes":[],"statements":[{"assignments":[13754],"declarations":[{"constant":false,"id":13754,"mutability":"mutable","name":"_storeAddress","nameLocation":"9271:13:37","nodeType":"VariableDeclaration","scope":13786,"src":"9263:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13753,"name":"address","nodeType":"ElementaryTypeName","src":"9263:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13757,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13755,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"9287:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9287:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9263:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13758,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13754,"src":"9314:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":13761,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9339:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":13760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9331:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13759,"name":"address","nodeType":"ElementaryTypeName","src":"9331:7:37","typeDescriptions":{}}},"id":13762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9331:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9314:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13784,"nodeType":"Block","src":"9422:82:37","statements":[{"expression":{"arguments":[{"id":13778,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13743,"src":"9461:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":13779,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13746,"src":"9470:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":13780,"name":"fieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13748,"src":"9480:10:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":13781,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13750,"src":"9492:4:37","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_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":13775,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13754,"src":"9437:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13774,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"9430:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":13776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9430:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":13777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9452:8:37","memberName":"setField","nodeType":"MemberAccess","referencedDeclaration":9343,"src":"9430:30:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,uint8,bytes memory) external"}},"id":13782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9430:67:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13783,"nodeType":"ExpressionStatement","src":"9430:67:37"}]},"id":13785,"nodeType":"IfStatement","src":"9310:194:37","trueBody":{"id":13773,"nodeType":"Block","src":"9346:70:37","statements":[{"expression":{"arguments":[{"id":13767,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13743,"src":"9373:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":13768,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13746,"src":"9382:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":13769,"name":"fieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13748,"src":"9392:10:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":13770,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13750,"src":"9404:4:37","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_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":13764,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"9354:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":13766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9364:8:37","memberName":"setField","nodeType":"MemberAccess","referencedDeclaration":11821,"src":"9354:18:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,uint8,bytes memory)"}},"id":13771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9354:55:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13772,"nodeType":"ExpressionStatement","src":"9354:55:37"}]}}]},"documentation":{"id":13740,"nodeType":"StructuredDocumentation","src":"8812:331:37","text":" @dev Sets the data for a specific field in a record identified by table ID and key tuple.\n @param tableId The ID of the resource table.\n @param keyTuple An array of bytes32 keys identifying the data record.\n @param fieldIndex The index of the field to set.\n @param data The data to set for the field."},"implemented":true,"kind":"function","modifiers":[],"name":"setField","nameLocation":"9155:8:37","parameters":{"id":13751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13743,"mutability":"mutable","name":"tableId","nameLocation":"9175:7:37","nodeType":"VariableDeclaration","scope":13787,"src":"9164:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":13742,"nodeType":"UserDefinedTypeName","pathNode":{"id":13741,"name":"ResourceId","nameLocations":["9164:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"9164:10:37"},"referencedDeclaration":9486,"src":"9164:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":13746,"mutability":"mutable","name":"keyTuple","nameLocation":"9201:8:37","nodeType":"VariableDeclaration","scope":13787,"src":"9184:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13744,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9184:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13745,"nodeType":"ArrayTypeName","src":"9184:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":13748,"mutability":"mutable","name":"fieldIndex","nameLocation":"9217:10:37","nodeType":"VariableDeclaration","scope":13787,"src":"9211:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":13747,"name":"uint8","nodeType":"ElementaryTypeName","src":"9211:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":13750,"mutability":"mutable","name":"data","nameLocation":"9242:4:37","nodeType":"VariableDeclaration","scope":13787,"src":"9229:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13749,"name":"bytes","nodeType":"ElementaryTypeName","src":"9229:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9163:84:37"},"returnParameters":{"id":13752,"nodeType":"ParameterList","parameters":[],"src":"9257:0:37"},"scope":14558,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13840,"nodeType":"FunctionDefinition","src":"9905:437:37","nodes":[],"body":{"id":13839,"nodeType":"Block","src":"10065:277:37","nodes":[],"statements":[{"assignments":[13805],"declarations":[{"constant":false,"id":13805,"mutability":"mutable","name":"_storeAddress","nameLocation":"10079:13:37","nodeType":"VariableDeclaration","scope":13839,"src":"10071:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13804,"name":"address","nodeType":"ElementaryTypeName","src":"10071:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13808,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13806,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"10095:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10095:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10071:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13809,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13805,"src":"10122:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":13812,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10147:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":13811,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10139:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13810,"name":"address","nodeType":"ElementaryTypeName","src":"10139:7:37","typeDescriptions":{}}},"id":13813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10139:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10122:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13837,"nodeType":"Block","src":"10243:95:37","statements":[{"expression":{"arguments":[{"id":13830,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13791,"src":"10282:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":13831,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13794,"src":"10291:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":13832,"name":"fieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13796,"src":"10301:10:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":13833,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13798,"src":"10313:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":13834,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13801,"src":"10319:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}],"expression":{"arguments":[{"id":13827,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13805,"src":"10258:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13826,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"10251:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":13828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10251:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":13829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10273:8:37","memberName":"setField","nodeType":"MemberAccess","referencedDeclaration":9359,"src":"10251:30:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_FieldLayout_$7885_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,uint8,bytes memory,FieldLayout) external"}},"id":13835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10251:80:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13836,"nodeType":"ExpressionStatement","src":"10251:80:37"}]},"id":13838,"nodeType":"IfStatement","src":"10118:220:37","trueBody":{"id":13825,"nodeType":"Block","src":"10154:83:37","statements":[{"expression":{"arguments":[{"id":13818,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13791,"src":"10181:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":13819,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13794,"src":"10190:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":13820,"name":"fieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13796,"src":"10200:10:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":13821,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13798,"src":"10212:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":13822,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13801,"src":"10218:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}],"expression":{"id":13815,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"10162:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":13817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10172:8:37","memberName":"setField","nodeType":"MemberAccess","referencedDeclaration":11869,"src":"10162:18:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_FieldLayout_$7885_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,uint8,bytes memory,FieldLayout)"}},"id":13823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10162:68:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13824,"nodeType":"ExpressionStatement","src":"10162:68:37"}]}}]},"documentation":{"id":13788,"nodeType":"StructuredDocumentation","src":"9512:390:37","text":" @dev Sets the data for a specific field in a record, considering a specific field layout.\n @param tableId The ID of the resource table.\n @param keyTuple An array of bytes32 keys identifying the data record.\n @param fieldIndex The index of the field to set.\n @param data The data to set for the field.\n @param fieldLayout The layout structure of the field."},"implemented":true,"kind":"function","modifiers":[],"name":"setField","nameLocation":"9914:8:37","parameters":{"id":13802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13791,"mutability":"mutable","name":"tableId","nameLocation":"9939:7:37","nodeType":"VariableDeclaration","scope":13840,"src":"9928:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":13790,"nodeType":"UserDefinedTypeName","pathNode":{"id":13789,"name":"ResourceId","nameLocations":["9928:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"9928:10:37"},"referencedDeclaration":9486,"src":"9928:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":13794,"mutability":"mutable","name":"keyTuple","nameLocation":"9969:8:37","nodeType":"VariableDeclaration","scope":13840,"src":"9952:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13792,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9952:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13793,"nodeType":"ArrayTypeName","src":"9952:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":13796,"mutability":"mutable","name":"fieldIndex","nameLocation":"9989:10:37","nodeType":"VariableDeclaration","scope":13840,"src":"9983:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":13795,"name":"uint8","nodeType":"ElementaryTypeName","src":"9983:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":13798,"mutability":"mutable","name":"data","nameLocation":"10018:4:37","nodeType":"VariableDeclaration","scope":13840,"src":"10005:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13797,"name":"bytes","nodeType":"ElementaryTypeName","src":"10005:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13801,"mutability":"mutable","name":"fieldLayout","nameLocation":"10040:11:37","nodeType":"VariableDeclaration","scope":13840,"src":"10028:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"},"typeName":{"id":13800,"nodeType":"UserDefinedTypeName","pathNode":{"id":13799,"name":"FieldLayout","nameLocations":["10028:11:37"],"nodeType":"IdentifierPath","referencedDeclaration":7885,"src":"10028:11:37"},"referencedDeclaration":7885,"src":"10028:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"visibility":"internal"}],"src":"9922:133:37"},"returnParameters":{"id":13803,"nodeType":"ParameterList","parameters":[],"src":"10065:0:37"},"scope":14558,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13893,"nodeType":"FunctionDefinition","src":"10761:455:37","nodes":[],"body":{"id":13892,"nodeType":"Block","src":"10927:289:37","nodes":[],"statements":[{"assignments":[13858],"declarations":[{"constant":false,"id":13858,"mutability":"mutable","name":"_storeAddress","nameLocation":"10941:13:37","nodeType":"VariableDeclaration","scope":13892,"src":"10933:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13857,"name":"address","nodeType":"ElementaryTypeName","src":"10933:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13861,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13859,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"10957:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10957:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10933:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13862,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13858,"src":"10984:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":13865,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11009:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":13864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11001:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13863,"name":"address","nodeType":"ElementaryTypeName","src":"11001:7:37","typeDescriptions":{}}},"id":13866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11001:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10984:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13890,"nodeType":"Block","src":"11111:101:37","statements":[{"expression":{"arguments":[{"id":13883,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13844,"src":"11156:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":13884,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13847,"src":"11165:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":13885,"name":"fieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13849,"src":"11175:10:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":13886,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13851,"src":"11187:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":13887,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13854,"src":"11193:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}],"expression":{"arguments":[{"id":13880,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13858,"src":"11126:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13879,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"11119:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":13881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11119:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":13882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11141:14:37","memberName":"setStaticField","nodeType":"MemberAccess","referencedDeclaration":9375,"src":"11119:36:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_FieldLayout_$7885_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,uint8,bytes memory,FieldLayout) external"}},"id":13888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11119:86:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13889,"nodeType":"ExpressionStatement","src":"11119:86:37"}]},"id":13891,"nodeType":"IfStatement","src":"10980:232:37","trueBody":{"id":13878,"nodeType":"Block","src":"11016:89:37","statements":[{"expression":{"arguments":[{"id":13871,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13844,"src":"11049:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":13872,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13847,"src":"11058:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":13873,"name":"fieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13849,"src":"11068:10:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":13874,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13851,"src":"11080:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":13875,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13854,"src":"11086:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}],"expression":{"id":13868,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"11024:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":13870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11034:14:37","memberName":"setStaticField","nodeType":"MemberAccess","referencedDeclaration":11901,"src":"11024:24:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$_t_userDefinedValueType$_FieldLayout_$7885_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,uint8,bytes memory,FieldLayout)"}},"id":13876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11024:74:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13877,"nodeType":"ExpressionStatement","src":"11024:74:37"}]}}]},"documentation":{"id":13841,"nodeType":"StructuredDocumentation","src":"10346:412:37","text":" @dev Sets the data for a specific static (fixed length) field in a record, considering a specific field layout.\n @param tableId The ID of the resource table.\n @param keyTuple An array of bytes32 keys identifying the data record.\n @param fieldIndex The index of the field to set.\n @param data The data to set for the field.\n @param fieldLayout The layout structure of the field."},"implemented":true,"kind":"function","modifiers":[],"name":"setStaticField","nameLocation":"10770:14:37","parameters":{"id":13855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13844,"mutability":"mutable","name":"tableId","nameLocation":"10801:7:37","nodeType":"VariableDeclaration","scope":13893,"src":"10790:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":13843,"nodeType":"UserDefinedTypeName","pathNode":{"id":13842,"name":"ResourceId","nameLocations":["10790:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"10790:10:37"},"referencedDeclaration":9486,"src":"10790:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":13847,"mutability":"mutable","name":"keyTuple","nameLocation":"10831:8:37","nodeType":"VariableDeclaration","scope":13893,"src":"10814:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13845,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10814:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13846,"nodeType":"ArrayTypeName","src":"10814:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":13849,"mutability":"mutable","name":"fieldIndex","nameLocation":"10851:10:37","nodeType":"VariableDeclaration","scope":13893,"src":"10845:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":13848,"name":"uint8","nodeType":"ElementaryTypeName","src":"10845:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":13851,"mutability":"mutable","name":"data","nameLocation":"10880:4:37","nodeType":"VariableDeclaration","scope":13893,"src":"10867:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13850,"name":"bytes","nodeType":"ElementaryTypeName","src":"10867:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13854,"mutability":"mutable","name":"fieldLayout","nameLocation":"10902:11:37","nodeType":"VariableDeclaration","scope":13893,"src":"10890:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"},"typeName":{"id":13853,"nodeType":"UserDefinedTypeName","pathNode":{"id":13852,"name":"FieldLayout","nameLocations":["10890:11:37"],"nodeType":"IdentifierPath","referencedDeclaration":7885,"src":"10890:11:37"},"referencedDeclaration":7885,"src":"10890:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"visibility":"internal"}],"src":"10784:133:37"},"returnParameters":{"id":13856,"nodeType":"ParameterList","parameters":[],"src":"10927:0:37"},"scope":14558,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13941,"nodeType":"FunctionDefinition","src":"11569:424:37","nodes":[],"body":{"id":13940,"nodeType":"Block","src":"11714:279:37","nodes":[],"statements":[{"assignments":[13908],"declarations":[{"constant":false,"id":13908,"mutability":"mutable","name":"_storeAddress","nameLocation":"11728:13:37","nodeType":"VariableDeclaration","scope":13940,"src":"11720:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13907,"name":"address","nodeType":"ElementaryTypeName","src":"11720:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13911,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13909,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"11744:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11744:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11720:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13912,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13908,"src":"11771:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":13915,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11796:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":13914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11788:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13913,"name":"address","nodeType":"ElementaryTypeName","src":"11788:7:37","typeDescriptions":{}}},"id":13916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11788:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11771:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13938,"nodeType":"Block","src":"11893:96:37","statements":[{"expression":{"arguments":[{"id":13932,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13897,"src":"11939:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":13933,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13900,"src":"11948:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":13934,"name":"dynamicFieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13902,"src":"11958:17:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":13935,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13904,"src":"11977:4:37","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_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":13929,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13908,"src":"11908:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13928,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"11901:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":13930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11901:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":13931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11923:15:37","memberName":"setDynamicField","nodeType":"MemberAccess","referencedDeclaration":9388,"src":"11901:37:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,uint8,bytes memory) external"}},"id":13936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11901:81:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13937,"nodeType":"ExpressionStatement","src":"11901:81:37"}]},"id":13939,"nodeType":"IfStatement","src":"11767:222:37","trueBody":{"id":13927,"nodeType":"Block","src":"11803:84:37","statements":[{"expression":{"arguments":[{"id":13921,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13897,"src":"11837:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":13922,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13900,"src":"11846:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":13923,"name":"dynamicFieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13902,"src":"11856:17:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":13924,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13904,"src":"11875:4:37","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_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":13918,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"11811:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":13920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11821:15:37","memberName":"setDynamicField","nodeType":"MemberAccess","referencedDeclaration":11947,"src":"11811:25:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,uint8,bytes memory)"}},"id":13925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11811:69:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13926,"nodeType":"ExpressionStatement","src":"11811:69:37"}]}}]},"documentation":{"id":13894,"nodeType":"StructuredDocumentation","src":"11220:346:37","text":" @dev Sets the value of a specific dynamic (variable-length) field in a record.\n @param tableId The ID of the table to which the record belongs.\n @param keyTuple An array representing the key for the record.\n @param dynamicFieldIndex The index of the dynamic field to set.\n @param data The data to set for the field."},"implemented":true,"kind":"function","modifiers":[],"name":"setDynamicField","nameLocation":"11578:15:37","parameters":{"id":13905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13897,"mutability":"mutable","name":"tableId","nameLocation":"11610:7:37","nodeType":"VariableDeclaration","scope":13941,"src":"11599:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":13896,"nodeType":"UserDefinedTypeName","pathNode":{"id":13895,"name":"ResourceId","nameLocations":["11599:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"11599:10:37"},"referencedDeclaration":9486,"src":"11599:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":13900,"mutability":"mutable","name":"keyTuple","nameLocation":"11640:8:37","nodeType":"VariableDeclaration","scope":13941,"src":"11623:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13898,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11623:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13899,"nodeType":"ArrayTypeName","src":"11623:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":13902,"mutability":"mutable","name":"dynamicFieldIndex","nameLocation":"11660:17:37","nodeType":"VariableDeclaration","scope":13941,"src":"11654:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":13901,"name":"uint8","nodeType":"ElementaryTypeName","src":"11654:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":13904,"mutability":"mutable","name":"data","nameLocation":"11696:4:37","nodeType":"VariableDeclaration","scope":13941,"src":"11683:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13903,"name":"bytes","nodeType":"ElementaryTypeName","src":"11683:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11593:111:37"},"returnParameters":{"id":13906,"nodeType":"ParameterList","parameters":[],"src":"11714:0:37"},"scope":14558,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":13989,"nodeType":"FunctionDefinition","src":"12345:451:37","nodes":[],"body":{"id":13988,"nodeType":"Block","src":"12499:297:37","nodes":[],"statements":[{"assignments":[13956],"declarations":[{"constant":false,"id":13956,"mutability":"mutable","name":"_storeAddress","nameLocation":"12513:13:37","nodeType":"VariableDeclaration","scope":13988,"src":"12505:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13955,"name":"address","nodeType":"ElementaryTypeName","src":"12505:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13959,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13957,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"12529:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12529:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12505:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13960,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13956,"src":"12556:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":13963,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12581:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":13962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12573:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13961,"name":"address","nodeType":"ElementaryTypeName","src":"12573:7:37","typeDescriptions":{}}},"id":13964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12573:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12556:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13986,"nodeType":"Block","src":"12687:105:37","statements":[{"expression":{"arguments":[{"id":13980,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13945,"src":"12736:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":13981,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13948,"src":"12745:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":13982,"name":"dynamicFieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13950,"src":"12755:17:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":13983,"name":"dataToPush","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13952,"src":"12774:10:37","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_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":13977,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13956,"src":"12702:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13976,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"12695:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":13978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12695:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":13979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12717:18:37","memberName":"pushToDynamicField","nodeType":"MemberAccess","referencedDeclaration":9401,"src":"12695:40:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,uint8,bytes memory) external"}},"id":13984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12695:90:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13985,"nodeType":"ExpressionStatement","src":"12695:90:37"}]},"id":13987,"nodeType":"IfStatement","src":"12552:240:37","trueBody":{"id":13975,"nodeType":"Block","src":"12588:93:37","statements":[{"expression":{"arguments":[{"id":13969,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13945,"src":"12625:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":13970,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13948,"src":"12634:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":13971,"name":"dynamicFieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13950,"src":"12644:17:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":13972,"name":"dataToPush","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13952,"src":"12663:10:37","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_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":13966,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"12596:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":13968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12606:18:37","memberName":"pushToDynamicField","nodeType":"MemberAccess","referencedDeclaration":12182,"src":"12596:28:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,uint8,bytes memory)"}},"id":13973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12596:78:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13974,"nodeType":"ExpressionStatement","src":"12596:78:37"}]}}]},"documentation":{"id":13942,"nodeType":"StructuredDocumentation","src":"11997:345:37","text":" @dev Appends data to a specific dynamic (variable length) field of a record.\n @param tableId The ID of the table to which the record belongs.\n @param keyTuple An array representing the key for the record.\n @param dynamicFieldIndex The index of the dynamic field.\n @param dataToPush The data to append to the field."},"implemented":true,"kind":"function","modifiers":[],"name":"pushToDynamicField","nameLocation":"12354:18:37","parameters":{"id":13953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13945,"mutability":"mutable","name":"tableId","nameLocation":"12389:7:37","nodeType":"VariableDeclaration","scope":13989,"src":"12378:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":13944,"nodeType":"UserDefinedTypeName","pathNode":{"id":13943,"name":"ResourceId","nameLocations":["12378:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"12378:10:37"},"referencedDeclaration":9486,"src":"12378:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":13948,"mutability":"mutable","name":"keyTuple","nameLocation":"12419:8:37","nodeType":"VariableDeclaration","scope":13989,"src":"12402:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13946,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12402:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13947,"nodeType":"ArrayTypeName","src":"12402:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":13950,"mutability":"mutable","name":"dynamicFieldIndex","nameLocation":"12439:17:37","nodeType":"VariableDeclaration","scope":13989,"src":"12433:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":13949,"name":"uint8","nodeType":"ElementaryTypeName","src":"12433:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":13952,"mutability":"mutable","name":"dataToPush","nameLocation":"12475:10:37","nodeType":"VariableDeclaration","scope":13989,"src":"12462:23:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13951,"name":"bytes","nodeType":"ElementaryTypeName","src":"12462:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12372:117:37"},"returnParameters":{"id":13954,"nodeType":"ParameterList","parameters":[],"src":"12499:0:37"},"scope":14558,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":14037,"nodeType":"FunctionDefinition","src":"13190:464:37","nodes":[],"body":{"id":14036,"nodeType":"Block","src":"13345:309:37","nodes":[],"statements":[{"assignments":[14004],"declarations":[{"constant":false,"id":14004,"mutability":"mutable","name":"_storeAddress","nameLocation":"13359:13:37","nodeType":"VariableDeclaration","scope":14036,"src":"13351:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14003,"name":"address","nodeType":"ElementaryTypeName","src":"13351:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":14007,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14005,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"13375:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":14006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13375:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13351:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14008,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14004,"src":"13402:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":14011,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13427:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":14010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13419:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14009,"name":"address","nodeType":"ElementaryTypeName","src":"13419:7:37","typeDescriptions":{}}},"id":14012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13419:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13402:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14034,"nodeType":"Block","src":"13539:111:37","statements":[{"expression":{"arguments":[{"id":14028,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13993,"src":"13589:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14029,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13996,"src":"13598:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":14030,"name":"dynamicFieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13998,"src":"13608:17:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":14031,"name":"byteLengthToPop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14000,"src":"13627:15:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":14025,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14004,"src":"13554:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14024,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"13547:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":14026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13547:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":14027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13569:19:37","memberName":"popFromDynamicField","nodeType":"MemberAccess","referencedDeclaration":9414,"src":"13547:41:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,uint8,uint256) external"}},"id":14032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13547:96:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14033,"nodeType":"ExpressionStatement","src":"13547:96:37"}]},"id":14035,"nodeType":"IfStatement","src":"13398:252:37","trueBody":{"id":14023,"nodeType":"Block","src":"13434:99:37","statements":[{"expression":{"arguments":[{"id":14017,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13993,"src":"13472:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14018,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13996,"src":"13481:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":14019,"name":"dynamicFieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13998,"src":"13491:17:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":14020,"name":"byteLengthToPop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14000,"src":"13510:15:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14014,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"13442:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":14016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13452:19:37","memberName":"popFromDynamicField","nodeType":"MemberAccess","referencedDeclaration":12239,"src":"13442:29:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (ResourceId,bytes32[] memory,uint8,uint256)"}},"id":14021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13442:84:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14022,"nodeType":"ExpressionStatement","src":"13442:84:37"}]}}]},"documentation":{"id":13990,"nodeType":"StructuredDocumentation","src":"12800:387:37","text":" @dev Removes data from the end of a specific dynamic (variable length) field of a record.\n @param tableId The ID of the table to which the record belongs.\n @param keyTuple An array representing the key for the record.\n @param dynamicFieldIndex The index of the dynamic field.\n @param byteLengthToPop The number of bytes to remove from the end of the field."},"implemented":true,"kind":"function","modifiers":[],"name":"popFromDynamicField","nameLocation":"13199:19:37","parameters":{"id":14001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13993,"mutability":"mutable","name":"tableId","nameLocation":"13235:7:37","nodeType":"VariableDeclaration","scope":14037,"src":"13224:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":13992,"nodeType":"UserDefinedTypeName","pathNode":{"id":13991,"name":"ResourceId","nameLocations":["13224:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"13224:10:37"},"referencedDeclaration":9486,"src":"13224:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":13996,"mutability":"mutable","name":"keyTuple","nameLocation":"13265:8:37","nodeType":"VariableDeclaration","scope":14037,"src":"13248:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13994,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13248:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13995,"nodeType":"ArrayTypeName","src":"13248:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":13998,"mutability":"mutable","name":"dynamicFieldIndex","nameLocation":"13285:17:37","nodeType":"VariableDeclaration","scope":14037,"src":"13279:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":13997,"name":"uint8","nodeType":"ElementaryTypeName","src":"13279:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":14000,"mutability":"mutable","name":"byteLengthToPop","nameLocation":"13316:15:37","nodeType":"VariableDeclaration","scope":14037,"src":"13308:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13999,"name":"uint256","nodeType":"ElementaryTypeName","src":"13308:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13218:117:37"},"returnParameters":{"id":14002,"nodeType":"ParameterList","parameters":[],"src":"13345:0:37"},"scope":14558,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":14077,"nodeType":"FunctionDefinition","src":"13847:301:37","nodes":[],"body":{"id":14076,"nodeType":"Block","src":"13925:223:37","nodes":[],"statements":[{"assignments":[14048],"declarations":[{"constant":false,"id":14048,"mutability":"mutable","name":"_storeAddress","nameLocation":"13939:13:37","nodeType":"VariableDeclaration","scope":14076,"src":"13931:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14047,"name":"address","nodeType":"ElementaryTypeName","src":"13931:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":14051,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14049,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"13955:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":14050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13955:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13931:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14052,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14048,"src":"13982:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":14055,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14007:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":14054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13999:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14053,"name":"address","nodeType":"ElementaryTypeName","src":"13999:7:37","typeDescriptions":{}}},"id":14056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13999:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13982:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14074,"nodeType":"Block","src":"14076:68:37","statements":[{"expression":{"arguments":[{"id":14070,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14041,"src":"14119:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14071,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14044,"src":"14128:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"expression":{"arguments":[{"id":14067,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14048,"src":"14091:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14066,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"14084:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":14068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14084:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":14069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14106:12:37","memberName":"deleteRecord","nodeType":"MemberAccess","referencedDeclaration":9423,"src":"14084:34:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory) external"}},"id":14072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14084:53:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14073,"nodeType":"ExpressionStatement","src":"14084:53:37"}]},"id":14075,"nodeType":"IfStatement","src":"13978:166:37","trueBody":{"id":14065,"nodeType":"Block","src":"14014:56:37","statements":[{"expression":{"arguments":[{"id":14061,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14041,"src":"14045:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14062,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14044,"src":"14054:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"expression":{"id":14058,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"14022:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":14060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14032:12:37","memberName":"deleteRecord","nodeType":"MemberAccess","referencedDeclaration":11966,"src":"14022:22:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$","typeString":"function (ResourceId,bytes32[] memory)"}},"id":14063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14022:41:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14064,"nodeType":"ExpressionStatement","src":"14022:41:37"}]}}]},"documentation":{"id":14038,"nodeType":"StructuredDocumentation","src":"13658:186:37","text":" @dev Deletes a record from a table.\n @param tableId The ID of the table to which the record belongs.\n @param keyTuple An array representing the key for the record."},"implemented":true,"kind":"function","modifiers":[],"name":"deleteRecord","nameLocation":"13856:12:37","parameters":{"id":14045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14041,"mutability":"mutable","name":"tableId","nameLocation":"13880:7:37","nodeType":"VariableDeclaration","scope":14077,"src":"13869:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":14040,"nodeType":"UserDefinedTypeName","pathNode":{"id":14039,"name":"ResourceId","nameLocations":["13869:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"13869:10:37"},"referencedDeclaration":9486,"src":"13869:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":14044,"mutability":"mutable","name":"keyTuple","nameLocation":"13906:8:37","nodeType":"VariableDeclaration","scope":14077,"src":"13889:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14042,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13889:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14043,"nodeType":"ArrayTypeName","src":"13889:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"13868:47:37"},"returnParameters":{"id":14046,"nodeType":"ParameterList","parameters":[],"src":"13925:0:37"},"scope":14558,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":14123,"nodeType":"FunctionDefinition","src":"14516:376:37","nodes":[],"body":{"id":14122,"nodeType":"Block","src":"14661:231:37","nodes":[],"statements":[{"assignments":[14095],"declarations":[{"constant":false,"id":14095,"mutability":"mutable","name":"_storeAddress","nameLocation":"14675:13:37","nodeType":"VariableDeclaration","scope":14122,"src":"14667:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14094,"name":"address","nodeType":"ElementaryTypeName","src":"14667:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":14098,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14096,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"14691:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":14097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14691:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"14667:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14099,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14095,"src":"14718:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":14102,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14743:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":14101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14735:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14100,"name":"address","nodeType":"ElementaryTypeName","src":"14735:7:37","typeDescriptions":{}}},"id":14103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14735:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14718:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14120,"nodeType":"Block","src":"14816:72:37","statements":[{"expression":{"arguments":[{"id":14116,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14081,"src":"14863:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14117,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14084,"src":"14872:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"expression":{"arguments":[{"id":14113,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14095,"src":"14838:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14112,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"14831:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":14114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14831:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":14115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14853:9:37","memberName":"getRecord","nodeType":"MemberAccess","referencedDeclaration":9072,"src":"14831:31:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes_memory_ptr_$_t_userDefinedValueType$_EncodedLengths_$7251_$_t_bytes_memory_ptr_$","typeString":"function (ResourceId,bytes32[] memory) view external returns (bytes memory,EncodedLengths,bytes memory)"}},"id":14118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14831:50:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_userDefinedValueType$_EncodedLengths_$7251_$_t_bytes_memory_ptr_$","typeString":"tuple(bytes memory,EncodedLengths,bytes memory)"}},"functionReturnParameters":14093,"id":14119,"nodeType":"Return","src":"14824:57:37"}]},"id":14121,"nodeType":"IfStatement","src":"14714:174:37","trueBody":{"id":14111,"nodeType":"Block","src":"14750:60:37","statements":[{"expression":{"arguments":[{"id":14107,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14081,"src":"14785:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14108,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14084,"src":"14794:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"expression":{"id":14105,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"14765:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":14106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14775:9:37","memberName":"getRecord","nodeType":"MemberAccess","referencedDeclaration":12265,"src":"14765:19:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes_memory_ptr_$_t_userDefinedValueType$_EncodedLengths_$7251_$_t_bytes_memory_ptr_$","typeString":"function (ResourceId,bytes32[] memory) view returns (bytes memory,EncodedLengths,bytes memory)"}},"id":14109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14765:38:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_userDefinedValueType$_EncodedLengths_$7251_$_t_bytes_memory_ptr_$","typeString":"tuple(bytes memory,EncodedLengths,bytes memory)"}},"functionReturnParameters":14093,"id":14110,"nodeType":"Return","src":"14758:45:37"}]}}]},"documentation":{"id":14078,"nodeType":"StructuredDocumentation","src":"14152:361:37","text":" @dev Retrieves a record from a table.\n @param tableId The ID of the table to which the record belongs.\n @param keyTuple An array representing the key for the record.\n @return staticData The static data of the record.\n @return encodedLengths Encoded lengths of dynamic data.\n @return dynamicData The dynamic data of the record."},"implemented":true,"kind":"function","modifiers":[],"name":"getRecord","nameLocation":"14525:9:37","parameters":{"id":14085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14081,"mutability":"mutable","name":"tableId","nameLocation":"14551:7:37","nodeType":"VariableDeclaration","scope":14123,"src":"14540:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":14080,"nodeType":"UserDefinedTypeName","pathNode":{"id":14079,"name":"ResourceId","nameLocations":["14540:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"14540:10:37"},"referencedDeclaration":9486,"src":"14540:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":14084,"mutability":"mutable","name":"keyTuple","nameLocation":"14581:8:37","nodeType":"VariableDeclaration","scope":14123,"src":"14564:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14082,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14564:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14083,"nodeType":"ArrayTypeName","src":"14564:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"14534:59:37"},"returnParameters":{"id":14093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14087,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14123,"src":"14617:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14086,"name":"bytes","nodeType":"ElementaryTypeName","src":"14617:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":14090,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14123,"src":"14631:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_EncodedLengths_$7251","typeString":"EncodedLengths"},"typeName":{"id":14089,"nodeType":"UserDefinedTypeName","pathNode":{"id":14088,"name":"EncodedLengths","nameLocations":["14631:14:37"],"nodeType":"IdentifierPath","referencedDeclaration":7251,"src":"14631:14:37"},"referencedDeclaration":7251,"src":"14631:14:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_EncodedLengths_$7251","typeString":"EncodedLengths"}},"visibility":"internal"},{"constant":false,"id":14092,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14123,"src":"14647:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14091,"name":"bytes","nodeType":"ElementaryTypeName","src":"14647:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14616:44:37"},"scope":14558,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14174,"nodeType":"FunctionDefinition","src":"15347:431:37","nodes":[],"body":{"id":14173,"nodeType":"Block","src":"15521:257:37","nodes":[],"statements":[{"assignments":[14144],"declarations":[{"constant":false,"id":14144,"mutability":"mutable","name":"_storeAddress","nameLocation":"15535:13:37","nodeType":"VariableDeclaration","scope":14173,"src":"15527:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14143,"name":"address","nodeType":"ElementaryTypeName","src":"15527:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":14147,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14145,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"15551:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":14146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15551:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15527:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14148,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14144,"src":"15578:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":14151,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15603:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":14150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15595:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14149,"name":"address","nodeType":"ElementaryTypeName","src":"15595:7:37","typeDescriptions":{}}},"id":14152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15595:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15578:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14171,"nodeType":"Block","src":"15689:85:37","statements":[{"expression":{"arguments":[{"id":14166,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14127,"src":"15736:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14167,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14130,"src":"15745:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":14168,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14133,"src":"15755:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}],"expression":{"arguments":[{"id":14163,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14144,"src":"15711:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14162,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"15704:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":14164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15704:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":14165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15726:9:37","memberName":"getRecord","nodeType":"MemberAccess","referencedDeclaration":9092,"src":"15704:31:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_userDefinedValueType$_FieldLayout_$7885_$returns$_t_bytes_memory_ptr_$_t_userDefinedValueType$_EncodedLengths_$7251_$_t_bytes_memory_ptr_$","typeString":"function (ResourceId,bytes32[] memory,FieldLayout) view external returns (bytes memory,EncodedLengths,bytes memory)"}},"id":14169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15704:63:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_userDefinedValueType$_EncodedLengths_$7251_$_t_bytes_memory_ptr_$","typeString":"tuple(bytes memory,EncodedLengths,bytes memory)"}},"functionReturnParameters":14142,"id":14170,"nodeType":"Return","src":"15697:70:37"}]},"id":14172,"nodeType":"IfStatement","src":"15574:200:37","trueBody":{"id":14161,"nodeType":"Block","src":"15610:73:37","statements":[{"expression":{"arguments":[{"id":14156,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14127,"src":"15645:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14157,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14130,"src":"15654:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":14158,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14133,"src":"15664:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}],"expression":{"id":14154,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"15625:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":14155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15635:9:37","memberName":"getRecord","nodeType":"MemberAccess","referencedDeclaration":12376,"src":"15625:19:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_userDefinedValueType$_FieldLayout_$7885_$returns$_t_bytes_memory_ptr_$_t_userDefinedValueType$_EncodedLengths_$7251_$_t_bytes_memory_ptr_$","typeString":"function (ResourceId,bytes32[] memory,FieldLayout) view returns (bytes memory,EncodedLengths,bytes memory)"}},"id":14159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15625:51:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_userDefinedValueType$_EncodedLengths_$7251_$_t_bytes_memory_ptr_$","typeString":"tuple(bytes memory,EncodedLengths,bytes memory)"}},"functionReturnParameters":14142,"id":14160,"nodeType":"Return","src":"15618:58:37"}]}}]},"documentation":{"id":14124,"nodeType":"StructuredDocumentation","src":"14896:448:37","text":" @dev Retrieves a record from a table with a specific layout.\n @param tableId The ID of the table to which the record belongs.\n @param keyTuple An array representing the key for the record.\n @param fieldLayout The layout of the fields in the record.\n @return staticData The static data of the record.\n @return encodedLengths Encoded lengths of dynamic data.\n @return dynamicData The dynamic data of the record."},"implemented":true,"kind":"function","modifiers":[],"name":"getRecord","nameLocation":"15356:9:37","parameters":{"id":14134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14127,"mutability":"mutable","name":"tableId","nameLocation":"15382:7:37","nodeType":"VariableDeclaration","scope":14174,"src":"15371:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":14126,"nodeType":"UserDefinedTypeName","pathNode":{"id":14125,"name":"ResourceId","nameLocations":["15371:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"15371:10:37"},"referencedDeclaration":9486,"src":"15371:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":14130,"mutability":"mutable","name":"keyTuple","nameLocation":"15412:8:37","nodeType":"VariableDeclaration","scope":14174,"src":"15395:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14128,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15395:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14129,"nodeType":"ArrayTypeName","src":"15395:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":14133,"mutability":"mutable","name":"fieldLayout","nameLocation":"15438:11:37","nodeType":"VariableDeclaration","scope":14174,"src":"15426:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"},"typeName":{"id":14132,"nodeType":"UserDefinedTypeName","pathNode":{"id":14131,"name":"FieldLayout","nameLocations":["15426:11:37"],"nodeType":"IdentifierPath","referencedDeclaration":7885,"src":"15426:11:37"},"referencedDeclaration":7885,"src":"15426:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"visibility":"internal"}],"src":"15365:88:37"},"returnParameters":{"id":14142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14136,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14174,"src":"15477:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14135,"name":"bytes","nodeType":"ElementaryTypeName","src":"15477:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":14139,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14174,"src":"15491:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_EncodedLengths_$7251","typeString":"EncodedLengths"},"typeName":{"id":14138,"nodeType":"UserDefinedTypeName","pathNode":{"id":14137,"name":"EncodedLengths","nameLocations":["15491:14:37"],"nodeType":"IdentifierPath","referencedDeclaration":7251,"src":"15491:14:37"},"referencedDeclaration":7251,"src":"15491:14:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_EncodedLengths_$7251","typeString":"EncodedLengths"}},"visibility":"internal"},{"constant":false,"id":14141,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14174,"src":"15507:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14140,"name":"bytes","nodeType":"ElementaryTypeName","src":"15507:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15476:44:37"},"scope":14558,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14219,"nodeType":"FunctionDefinition","src":"16095:389:37","nodes":[],"body":{"id":14218,"nodeType":"Block","src":"16231:253:37","nodes":[],"statements":[{"assignments":[14189],"declarations":[{"constant":false,"id":14189,"mutability":"mutable","name":"_storeAddress","nameLocation":"16245:13:37","nodeType":"VariableDeclaration","scope":14218,"src":"16237:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14188,"name":"address","nodeType":"ElementaryTypeName","src":"16237:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":14192,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14190,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"16261:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":14191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16261:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16237:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14193,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14189,"src":"16288:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":14196,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"16313:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":14195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16305:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14194,"name":"address","nodeType":"ElementaryTypeName","src":"16305:7:37","typeDescriptions":{}}},"id":14197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16305:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16288:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14216,"nodeType":"Block","src":"16397:83:37","statements":[{"expression":{"arguments":[{"id":14211,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14178,"src":"16443:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14212,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14181,"src":"16452:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":14213,"name":"fieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14183,"src":"16462:10:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"arguments":[{"id":14208,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14189,"src":"16419:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14207,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"16412:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":14209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16412:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":14210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16434:8:37","memberName":"getField","nodeType":"MemberAccess","referencedDeclaration":9106,"src":"16412:30:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$returns$_t_bytes_memory_ptr_$","typeString":"function (ResourceId,bytes32[] memory,uint8) view external returns (bytes memory)"}},"id":14214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16412:61:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":14187,"id":14215,"nodeType":"Return","src":"16405:68:37"}]},"id":14217,"nodeType":"IfStatement","src":"16284:196:37","trueBody":{"id":14206,"nodeType":"Block","src":"16320:71:37","statements":[{"expression":{"arguments":[{"id":14201,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14178,"src":"16354:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14202,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14181,"src":"16363:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":14203,"name":"fieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14183,"src":"16373:10:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":14199,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"16335:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":14200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16345:8:37","memberName":"getField","nodeType":"MemberAccess","referencedDeclaration":12400,"src":"16335:18:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$returns$_t_bytes_memory_ptr_$","typeString":"function (ResourceId,bytes32[] memory,uint8) view returns (bytes memory)"}},"id":14204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16335:49:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":14187,"id":14205,"nodeType":"Return","src":"16328:56:37"}]}}]},"documentation":{"id":14175,"nodeType":"StructuredDocumentation","src":"15782:310:37","text":" @dev Retrieves a specific field from a record.\n @param tableId The ID of the table to which the record belongs.\n @param keyTuple An array representing the key for the record.\n @param fieldIndex The index of the field to retrieve.\n @return Returns the data of the specified field."},"implemented":true,"kind":"function","modifiers":[],"name":"getField","nameLocation":"16104:8:37","parameters":{"id":14184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14178,"mutability":"mutable","name":"tableId","nameLocation":"16129:7:37","nodeType":"VariableDeclaration","scope":14219,"src":"16118:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":14177,"nodeType":"UserDefinedTypeName","pathNode":{"id":14176,"name":"ResourceId","nameLocations":["16118:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"16118:10:37"},"referencedDeclaration":9486,"src":"16118:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":14181,"mutability":"mutable","name":"keyTuple","nameLocation":"16159:8:37","nodeType":"VariableDeclaration","scope":14219,"src":"16142:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14179,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16142:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14180,"nodeType":"ArrayTypeName","src":"16142:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":14183,"mutability":"mutable","name":"fieldIndex","nameLocation":"16179:10:37","nodeType":"VariableDeclaration","scope":14219,"src":"16173:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":14182,"name":"uint8","nodeType":"ElementaryTypeName","src":"16173:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16112:81:37"},"returnParameters":{"id":14187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14186,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14219,"src":"16217:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14185,"name":"bytes","nodeType":"ElementaryTypeName","src":"16217:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16216:14:37"},"scope":14558,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14269,"nodeType":"FunctionDefinition","src":"16886:444:37","nodes":[],"body":{"id":14268,"nodeType":"Block","src":"17051:279:37","nodes":[],"statements":[{"assignments":[14237],"declarations":[{"constant":false,"id":14237,"mutability":"mutable","name":"_storeAddress","nameLocation":"17065:13:37","nodeType":"VariableDeclaration","scope":14268,"src":"17057:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14236,"name":"address","nodeType":"ElementaryTypeName","src":"17057:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":14240,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14238,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"17081:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":14239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17081:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"17057:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14241,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14237,"src":"17108:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":14244,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17133:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":14243,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17125:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14242,"name":"address","nodeType":"ElementaryTypeName","src":"17125:7:37","typeDescriptions":{}}},"id":14245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17125:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17108:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14266,"nodeType":"Block","src":"17230:96:37","statements":[{"expression":{"arguments":[{"id":14260,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14223,"src":"17276:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14261,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14226,"src":"17285:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":14262,"name":"fieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14228,"src":"17295:10:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":14263,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14231,"src":"17307:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}],"expression":{"arguments":[{"id":14257,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14237,"src":"17252:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14256,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"17245:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":14258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17245:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":14259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17267:8:37","memberName":"getField","nodeType":"MemberAccess","referencedDeclaration":9123,"src":"17245:30:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_userDefinedValueType$_FieldLayout_$7885_$returns$_t_bytes_memory_ptr_$","typeString":"function (ResourceId,bytes32[] memory,uint8,FieldLayout) view external returns (bytes memory)"}},"id":14264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17245:74:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":14235,"id":14265,"nodeType":"Return","src":"17238:81:37"}]},"id":14267,"nodeType":"IfStatement","src":"17104:222:37","trueBody":{"id":14255,"nodeType":"Block","src":"17140:84:37","statements":[{"expression":{"arguments":[{"id":14249,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14223,"src":"17174:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14250,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14226,"src":"17183:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":14251,"name":"fieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14228,"src":"17193:10:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":14252,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14231,"src":"17205:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}],"expression":{"id":14247,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"17155:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":14248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17165:8:37","memberName":"getField","nodeType":"MemberAccess","referencedDeclaration":12447,"src":"17155:18:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_userDefinedValueType$_FieldLayout_$7885_$returns$_t_bytes_memory_ptr_$","typeString":"function (ResourceId,bytes32[] memory,uint8,FieldLayout) view returns (bytes memory)"}},"id":14253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17155:62:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":14235,"id":14254,"nodeType":"Return","src":"17148:69:37"}]}}]},"documentation":{"id":14220,"nodeType":"StructuredDocumentation","src":"16488:395:37","text":" @dev Retrieves a specific field from a record with a given layout.\n @param tableId The ID of the table to which the record belongs.\n @param keyTuple An array representing the key for the record.\n @param fieldIndex The index of the field to retrieve.\n @param fieldLayout The layout of the field being retrieved.\n @return Returns the data of the specified field."},"implemented":true,"kind":"function","modifiers":[],"name":"getField","nameLocation":"16895:8:37","parameters":{"id":14232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14223,"mutability":"mutable","name":"tableId","nameLocation":"16920:7:37","nodeType":"VariableDeclaration","scope":14269,"src":"16909:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":14222,"nodeType":"UserDefinedTypeName","pathNode":{"id":14221,"name":"ResourceId","nameLocations":["16909:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"16909:10:37"},"referencedDeclaration":9486,"src":"16909:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":14226,"mutability":"mutable","name":"keyTuple","nameLocation":"16950:8:37","nodeType":"VariableDeclaration","scope":14269,"src":"16933:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14224,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16933:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14225,"nodeType":"ArrayTypeName","src":"16933:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":14228,"mutability":"mutable","name":"fieldIndex","nameLocation":"16970:10:37","nodeType":"VariableDeclaration","scope":14269,"src":"16964:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":14227,"name":"uint8","nodeType":"ElementaryTypeName","src":"16964:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":14231,"mutability":"mutable","name":"fieldLayout","nameLocation":"16998:11:37","nodeType":"VariableDeclaration","scope":14269,"src":"16986:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"},"typeName":{"id":14230,"nodeType":"UserDefinedTypeName","pathNode":{"id":14229,"name":"FieldLayout","nameLocations":["16986:11:37"],"nodeType":"IdentifierPath","referencedDeclaration":7885,"src":"16986:11:37"},"referencedDeclaration":7885,"src":"16986:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"visibility":"internal"}],"src":"16903:110:37"},"returnParameters":{"id":14235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14234,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14269,"src":"17037:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14233,"name":"bytes","nodeType":"ElementaryTypeName","src":"17037:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"17036:14:37"},"scope":14558,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14319,"nodeType":"FunctionDefinition","src":"17775:457:37","nodes":[],"body":{"id":14318,"nodeType":"Block","src":"17941:291:37","nodes":[],"statements":[{"assignments":[14287],"declarations":[{"constant":false,"id":14287,"mutability":"mutable","name":"_storeAddress","nameLocation":"17955:13:37","nodeType":"VariableDeclaration","scope":14318,"src":"17947:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14286,"name":"address","nodeType":"ElementaryTypeName","src":"17947:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":14290,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14288,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"17971:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":14289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17971:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"17947:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14291,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14287,"src":"17998:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":14294,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18023:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":14293,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18015:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14292,"name":"address","nodeType":"ElementaryTypeName","src":"18015:7:37","typeDescriptions":{}}},"id":14295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18015:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17998:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14316,"nodeType":"Block","src":"18126:102:37","statements":[{"expression":{"arguments":[{"id":14310,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14273,"src":"18178:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14311,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14276,"src":"18187:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":14312,"name":"fieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14278,"src":"18197:10:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":14313,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14281,"src":"18209:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}],"expression":{"arguments":[{"id":14307,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14287,"src":"18148:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14306,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"18141:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":14308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18141:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":14309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18163:14:37","memberName":"getStaticField","nodeType":"MemberAccess","referencedDeclaration":9140,"src":"18141:36:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_userDefinedValueType$_FieldLayout_$7885_$returns$_t_bytes32_$","typeString":"function (ResourceId,bytes32[] memory,uint8,FieldLayout) view external returns (bytes32)"}},"id":14314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18141:80:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":14285,"id":14315,"nodeType":"Return","src":"18134:87:37"}]},"id":14317,"nodeType":"IfStatement","src":"17994:234:37","trueBody":{"id":14305,"nodeType":"Block","src":"18030:90:37","statements":[{"expression":{"arguments":[{"id":14299,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14273,"src":"18070:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14300,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14276,"src":"18079:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":14301,"name":"fieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14278,"src":"18089:10:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":14302,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14281,"src":"18101:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}],"expression":{"id":14297,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"18045:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":14298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18055:14:37","memberName":"getStaticField","nodeType":"MemberAccess","referencedDeclaration":12483,"src":"18045:24:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_userDefinedValueType$_FieldLayout_$7885_$returns$_t_bytes32_$","typeString":"function (ResourceId,bytes32[] memory,uint8,FieldLayout) view returns (bytes32)"}},"id":14303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18045:68:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":14285,"id":14304,"nodeType":"Return","src":"18038:75:37"}]}}]},"documentation":{"id":14270,"nodeType":"StructuredDocumentation","src":"17334:438:37","text":" @dev Retrieves a specific static (fixed length) field from a record with a given layout.\n @param tableId The ID of the table to which the record belongs.\n @param keyTuple An array representing the key for the record.\n @param fieldIndex The index of the static field to retrieve.\n @param fieldLayout The layout of the static field being retrieved.\n @return Returns the data of the specified static field."},"implemented":true,"kind":"function","modifiers":[],"name":"getStaticField","nameLocation":"17784:14:37","parameters":{"id":14282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14273,"mutability":"mutable","name":"tableId","nameLocation":"17815:7:37","nodeType":"VariableDeclaration","scope":14319,"src":"17804:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":14272,"nodeType":"UserDefinedTypeName","pathNode":{"id":14271,"name":"ResourceId","nameLocations":["17804:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"17804:10:37"},"referencedDeclaration":9486,"src":"17804:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":14276,"mutability":"mutable","name":"keyTuple","nameLocation":"17845:8:37","nodeType":"VariableDeclaration","scope":14319,"src":"17828:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14274,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17828:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14275,"nodeType":"ArrayTypeName","src":"17828:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":14278,"mutability":"mutable","name":"fieldIndex","nameLocation":"17865:10:37","nodeType":"VariableDeclaration","scope":14319,"src":"17859:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":14277,"name":"uint8","nodeType":"ElementaryTypeName","src":"17859:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":14281,"mutability":"mutable","name":"fieldLayout","nameLocation":"17893:11:37","nodeType":"VariableDeclaration","scope":14319,"src":"17881:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"},"typeName":{"id":14280,"nodeType":"UserDefinedTypeName","pathNode":{"id":14279,"name":"FieldLayout","nameLocations":["17881:11:37"],"nodeType":"IdentifierPath","referencedDeclaration":7885,"src":"17881:11:37"},"referencedDeclaration":7885,"src":"17881:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"visibility":"internal"}],"src":"17798:110:37"},"returnParameters":{"id":14285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14319,"src":"17932:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14283,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17932:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17931:9:37"},"scope":14558,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14364,"nodeType":"FunctionDefinition","src":"18598:431:37","nodes":[],"body":{"id":14363,"nodeType":"Block","src":"18748:281:37","nodes":[],"statements":[{"assignments":[14334],"declarations":[{"constant":false,"id":14334,"mutability":"mutable","name":"_storeAddress","nameLocation":"18762:13:37","nodeType":"VariableDeclaration","scope":14363,"src":"18754:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14333,"name":"address","nodeType":"ElementaryTypeName","src":"18754:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":14337,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14335,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"18778:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":14336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18778:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"18754:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14338,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14334,"src":"18805:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":14341,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18830:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":14340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18822:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14339,"name":"address","nodeType":"ElementaryTypeName","src":"18822:7:37","typeDescriptions":{}}},"id":14342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18822:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18805:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14361,"nodeType":"Block","src":"18928:97:37","statements":[{"expression":{"arguments":[{"id":14356,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14323,"src":"18981:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14357,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14326,"src":"18990:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":14358,"name":"dynamicFieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14328,"src":"19000:17:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"arguments":[{"id":14353,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14334,"src":"18950:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14352,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"18943:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":14354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18943:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":14355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18965:15:37","memberName":"getDynamicField","nodeType":"MemberAccess","referencedDeclaration":9154,"src":"18943:37:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$returns$_t_bytes_memory_ptr_$","typeString":"function (ResourceId,bytes32[] memory,uint8) view external returns (bytes memory)"}},"id":14359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18943:75:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":14332,"id":14360,"nodeType":"Return","src":"18936:82:37"}]},"id":14362,"nodeType":"IfStatement","src":"18801:224:37","trueBody":{"id":14351,"nodeType":"Block","src":"18837:85:37","statements":[{"expression":{"arguments":[{"id":14346,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14323,"src":"18878:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14347,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14326,"src":"18887:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":14348,"name":"dynamicFieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14328,"src":"18897:17:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":14344,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"18852:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":14345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18862:15:37","memberName":"getDynamicField","nodeType":"MemberAccess","referencedDeclaration":12517,"src":"18852:25:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$returns$_t_bytes_memory_ptr_$","typeString":"function (ResourceId,bytes32[] memory,uint8) view returns (bytes memory)"}},"id":14349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18852:63:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":14332,"id":14350,"nodeType":"Return","src":"18845:70:37"}]}}]},"documentation":{"id":14320,"nodeType":"StructuredDocumentation","src":"18236:359:37","text":" @dev Retrieves a specific dynamic (variable length) field from a record.\n @param tableId The ID of the table to which the record belongs.\n @param keyTuple An array representing the key for the record.\n @param dynamicFieldIndex The index of the dynamic field to retrieve.\n @return Returns the data of the specified dynamic field."},"implemented":true,"kind":"function","modifiers":[],"name":"getDynamicField","nameLocation":"18607:15:37","parameters":{"id":14329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14323,"mutability":"mutable","name":"tableId","nameLocation":"18639:7:37","nodeType":"VariableDeclaration","scope":14364,"src":"18628:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":14322,"nodeType":"UserDefinedTypeName","pathNode":{"id":14321,"name":"ResourceId","nameLocations":["18628:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"18628:10:37"},"referencedDeclaration":9486,"src":"18628:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":14326,"mutability":"mutable","name":"keyTuple","nameLocation":"18669:8:37","nodeType":"VariableDeclaration","scope":14364,"src":"18652:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14324,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18652:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14325,"nodeType":"ArrayTypeName","src":"18652:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":14328,"mutability":"mutable","name":"dynamicFieldIndex","nameLocation":"18689:17:37","nodeType":"VariableDeclaration","scope":14364,"src":"18683:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":14327,"name":"uint8","nodeType":"ElementaryTypeName","src":"18683:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"18622:88:37"},"returnParameters":{"id":14332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14331,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14364,"src":"18734:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14330,"name":"bytes","nodeType":"ElementaryTypeName","src":"18734:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18733:14:37"},"scope":14558,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14409,"nodeType":"FunctionDefinition","src":"19380:402:37","nodes":[],"body":{"id":14408,"nodeType":"Block","src":"19517:265:37","nodes":[],"statements":[{"assignments":[14379],"declarations":[{"constant":false,"id":14379,"mutability":"mutable","name":"_storeAddress","nameLocation":"19531:13:37","nodeType":"VariableDeclaration","scope":14408,"src":"19523:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14378,"name":"address","nodeType":"ElementaryTypeName","src":"19523:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":14382,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14380,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"19547:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":14381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19547:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"19523:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14383,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14379,"src":"19574:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":14386,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"19599:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":14385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19591:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14384,"name":"address","nodeType":"ElementaryTypeName","src":"19591:7:37","typeDescriptions":{}}},"id":14387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19591:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19574:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14406,"nodeType":"Block","src":"19689:89:37","statements":[{"expression":{"arguments":[{"id":14401,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14368,"src":"19741:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14402,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14371,"src":"19750:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":14403,"name":"fieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14373,"src":"19760:10:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"arguments":[{"id":14398,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14379,"src":"19711:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14397,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"19704:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":14399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19704:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":14400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19726:14:37","memberName":"getFieldLength","nodeType":"MemberAccess","referencedDeclaration":9168,"src":"19704:36:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$returns$_t_uint256_$","typeString":"function (ResourceId,bytes32[] memory,uint8) view external returns (uint256)"}},"id":14404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19704:67:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14377,"id":14405,"nodeType":"Return","src":"19697:74:37"}]},"id":14407,"nodeType":"IfStatement","src":"19570:208:37","trueBody":{"id":14396,"nodeType":"Block","src":"19606:77:37","statements":[{"expression":{"arguments":[{"id":14391,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14368,"src":"19646:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14392,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14371,"src":"19655:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":14393,"name":"fieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14373,"src":"19665:10:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":14389,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"19621:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":14390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19631:14:37","memberName":"getFieldLength","nodeType":"MemberAccess","referencedDeclaration":12541,"src":"19621:24:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$returns$_t_uint256_$","typeString":"function (ResourceId,bytes32[] memory,uint8) view returns (uint256)"}},"id":14394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19621:55:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14377,"id":14395,"nodeType":"Return","src":"19614:62:37"}]}}]},"documentation":{"id":14365,"nodeType":"StructuredDocumentation","src":"19033:344:37","text":" @dev Retrieves the length of a specific field in a record.\n @param tableId The ID of the table to which the record belongs.\n @param keyTuple An array representing the key for the record.\n @param fieldIndex The index of the field whose length is to be retrieved.\n @return Returns the length of the specified field."},"implemented":true,"kind":"function","modifiers":[],"name":"getFieldLength","nameLocation":"19389:14:37","parameters":{"id":14374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14368,"mutability":"mutable","name":"tableId","nameLocation":"19420:7:37","nodeType":"VariableDeclaration","scope":14409,"src":"19409:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":14367,"nodeType":"UserDefinedTypeName","pathNode":{"id":14366,"name":"ResourceId","nameLocations":["19409:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"19409:10:37"},"referencedDeclaration":9486,"src":"19409:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":14371,"mutability":"mutable","name":"keyTuple","nameLocation":"19450:8:37","nodeType":"VariableDeclaration","scope":14409,"src":"19433:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14369,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19433:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14370,"nodeType":"ArrayTypeName","src":"19433:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":14373,"mutability":"mutable","name":"fieldIndex","nameLocation":"19470:10:37","nodeType":"VariableDeclaration","scope":14409,"src":"19464:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":14372,"name":"uint8","nodeType":"ElementaryTypeName","src":"19464:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"19403:81:37"},"returnParameters":{"id":14377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14376,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14409,"src":"19508:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14375,"name":"uint256","nodeType":"ElementaryTypeName","src":"19508:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19507:9:37"},"scope":14558,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14459,"nodeType":"FunctionDefinition","src":"20234:457:37","nodes":[],"body":{"id":14458,"nodeType":"Block","src":"20400:291:37","nodes":[],"statements":[{"assignments":[14427],"declarations":[{"constant":false,"id":14427,"mutability":"mutable","name":"_storeAddress","nameLocation":"20414:13:37","nodeType":"VariableDeclaration","scope":14458,"src":"20406:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14426,"name":"address","nodeType":"ElementaryTypeName","src":"20406:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":14430,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14428,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"20430:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":14429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20430:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"20406:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14431,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14427,"src":"20457:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":14434,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20482:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":14433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20474:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14432,"name":"address","nodeType":"ElementaryTypeName","src":"20474:7:37","typeDescriptions":{}}},"id":14435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20474:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20457:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14456,"nodeType":"Block","src":"20585:102:37","statements":[{"expression":{"arguments":[{"id":14450,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14413,"src":"20637:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14451,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14416,"src":"20646:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":14452,"name":"fieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14418,"src":"20656:10:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":14453,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14421,"src":"20668:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}],"expression":{"arguments":[{"id":14447,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14427,"src":"20607:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14446,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"20600:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":14448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20600:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":14449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20622:14:37","memberName":"getFieldLength","nodeType":"MemberAccess","referencedDeclaration":9185,"src":"20600:36:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_userDefinedValueType$_FieldLayout_$7885_$returns$_t_uint256_$","typeString":"function (ResourceId,bytes32[] memory,uint8,FieldLayout) view external returns (uint256)"}},"id":14454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20600:80:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14425,"id":14455,"nodeType":"Return","src":"20593:87:37"}]},"id":14457,"nodeType":"IfStatement","src":"20453:234:37","trueBody":{"id":14445,"nodeType":"Block","src":"20489:90:37","statements":[{"expression":{"arguments":[{"id":14439,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14413,"src":"20529:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14440,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14416,"src":"20538:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":14441,"name":"fieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14418,"src":"20548:10:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":14442,"name":"fieldLayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14421,"src":"20560:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}],"expression":{"id":14437,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"20504:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":14438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20514:14:37","memberName":"getFieldLength","nodeType":"MemberAccess","referencedDeclaration":12587,"src":"20504:24:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_userDefinedValueType$_FieldLayout_$7885_$returns$_t_uint256_$","typeString":"function (ResourceId,bytes32[] memory,uint8,FieldLayout) view returns (uint256)"}},"id":14443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20504:68:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14425,"id":14444,"nodeType":"Return","src":"20497:75:37"}]}}]},"documentation":{"id":14410,"nodeType":"StructuredDocumentation","src":"19786:445:37","text":" @dev Retrieves the length of a specific field in a record with a given layout.\n @param tableId The ID of the table to which the record belongs.\n @param keyTuple An array representing the key for the record.\n @param fieldIndex The index of the field whose length is to be retrieved.\n @param fieldLayout The layout of the field whose length is to be retrieved.\n @return Returns the length of the specified field."},"implemented":true,"kind":"function","modifiers":[],"name":"getFieldLength","nameLocation":"20243:14:37","parameters":{"id":14422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14413,"mutability":"mutable","name":"tableId","nameLocation":"20274:7:37","nodeType":"VariableDeclaration","scope":14459,"src":"20263:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":14412,"nodeType":"UserDefinedTypeName","pathNode":{"id":14411,"name":"ResourceId","nameLocations":["20263:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"20263:10:37"},"referencedDeclaration":9486,"src":"20263:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":14416,"mutability":"mutable","name":"keyTuple","nameLocation":"20304:8:37","nodeType":"VariableDeclaration","scope":14459,"src":"20287:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14414,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20287:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14415,"nodeType":"ArrayTypeName","src":"20287:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":14418,"mutability":"mutable","name":"fieldIndex","nameLocation":"20324:10:37","nodeType":"VariableDeclaration","scope":14459,"src":"20318:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":14417,"name":"uint8","nodeType":"ElementaryTypeName","src":"20318:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":14421,"mutability":"mutable","name":"fieldLayout","nameLocation":"20352:11:37","nodeType":"VariableDeclaration","scope":14459,"src":"20340:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"},"typeName":{"id":14420,"nodeType":"UserDefinedTypeName","pathNode":{"id":14419,"name":"FieldLayout","nameLocations":["20340:11:37"],"nodeType":"IdentifierPath","referencedDeclaration":7885,"src":"20340:11:37"},"referencedDeclaration":7885,"src":"20340:11:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_FieldLayout_$7885","typeString":"FieldLayout"}},"visibility":"internal"}],"src":"20257:110:37"},"returnParameters":{"id":14425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14424,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14459,"src":"20391:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14423,"name":"uint256","nodeType":"ElementaryTypeName","src":"20391:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20390:9:37"},"scope":14558,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14504,"nodeType":"FunctionDefinition","src":"21091:444:37","nodes":[],"body":{"id":14503,"nodeType":"Block","src":"21242:293:37","nodes":[],"statements":[{"assignments":[14474],"declarations":[{"constant":false,"id":14474,"mutability":"mutable","name":"_storeAddress","nameLocation":"21256:13:37","nodeType":"VariableDeclaration","scope":14503,"src":"21248:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14473,"name":"address","nodeType":"ElementaryTypeName","src":"21248:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":14477,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14475,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"21272:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":14476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21272:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21248:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14478,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14474,"src":"21299:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":14481,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"21324:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":14480,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21316:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14479,"name":"address","nodeType":"ElementaryTypeName","src":"21316:7:37","typeDescriptions":{}}},"id":14482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21316:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21299:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14501,"nodeType":"Block","src":"21428:103:37","statements":[{"expression":{"arguments":[{"id":14496,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14463,"src":"21487:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14497,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14466,"src":"21496:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":14498,"name":"dynamicFieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14468,"src":"21506:17:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"arguments":[{"id":14493,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14474,"src":"21450:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14492,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"21443:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":14494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21443:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":14495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21465:21:37","memberName":"getDynamicFieldLength","nodeType":"MemberAccess","referencedDeclaration":9199,"src":"21443:43:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$returns$_t_uint256_$","typeString":"function (ResourceId,bytes32[] memory,uint8) view external returns (uint256)"}},"id":14499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21443:81:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14472,"id":14500,"nodeType":"Return","src":"21436:88:37"}]},"id":14502,"nodeType":"IfStatement","src":"21295:236:37","trueBody":{"id":14491,"nodeType":"Block","src":"21331:91:37","statements":[{"expression":{"arguments":[{"id":14486,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14463,"src":"21378:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14487,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14466,"src":"21387:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":14488,"name":"dynamicFieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14468,"src":"21397:17:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":14484,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"21346:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":14485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21356:21:37","memberName":"getDynamicFieldLength","nodeType":"MemberAccess","referencedDeclaration":12611,"src":"21346:31:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$returns$_t_uint256_$","typeString":"function (ResourceId,bytes32[] memory,uint8) view returns (uint256)"}},"id":14489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21346:69:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14472,"id":14490,"nodeType":"Return","src":"21339:76:37"}]}}]},"documentation":{"id":14460,"nodeType":"StructuredDocumentation","src":"20695:393:37","text":" @dev Retrieves the length of a specific dynamic (variable length) field in a record.\n @param tableId The ID of the table to which the record belongs.\n @param keyTuple An array representing the key for the record.\n @param dynamicFieldIndex The index of the dynamic field whose length is to be retrieved.\n @return Returns the length of the specified dynamic field."},"implemented":true,"kind":"function","modifiers":[],"name":"getDynamicFieldLength","nameLocation":"21100:21:37","parameters":{"id":14469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14463,"mutability":"mutable","name":"tableId","nameLocation":"21138:7:37","nodeType":"VariableDeclaration","scope":14504,"src":"21127:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":14462,"nodeType":"UserDefinedTypeName","pathNode":{"id":14461,"name":"ResourceId","nameLocations":["21127:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"21127:10:37"},"referencedDeclaration":9486,"src":"21127:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":14466,"mutability":"mutable","name":"keyTuple","nameLocation":"21168:8:37","nodeType":"VariableDeclaration","scope":14504,"src":"21151:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14464,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21151:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14465,"nodeType":"ArrayTypeName","src":"21151:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":14468,"mutability":"mutable","name":"dynamicFieldIndex","nameLocation":"21188:17:37","nodeType":"VariableDeclaration","scope":14504,"src":"21182:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":14467,"name":"uint8","nodeType":"ElementaryTypeName","src":"21182:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"21121:88:37"},"returnParameters":{"id":14472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14471,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14504,"src":"21233:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14470,"name":"uint256","nodeType":"ElementaryTypeName","src":"21233:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21232:9:37"},"scope":14558,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14557,"nodeType":"FunctionDefinition","src":"22026:506:37","nodes":[],"body":{"id":14556,"nodeType":"Block","src":"22217:315:37","nodes":[],"statements":[{"assignments":[14523],"declarations":[{"constant":false,"id":14523,"mutability":"mutable","name":"_storeAddress","nameLocation":"22231:13:37","nodeType":"VariableDeclaration","scope":14556,"src":"22223:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14522,"name":"address","nodeType":"ElementaryTypeName","src":"22223:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":14526,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14524,"name":"getStoreAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"22247:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":14525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22247:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"22223:41:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14527,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14523,"src":"22274:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":14530,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"22299:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StoreSwitch_$14558","typeString":"library StoreSwitch"}],"id":14529,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22291:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14528,"name":"address","nodeType":"ElementaryTypeName","src":"22291:7:37","typeDescriptions":{}}},"id":14531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22291:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22274:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14554,"nodeType":"Block","src":"22414:114:37","statements":[{"expression":{"arguments":[{"id":14547,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14508,"src":"22472:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14548,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14511,"src":"22481:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":14549,"name":"dynamicFieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14513,"src":"22491:17:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":14550,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14515,"src":"22510:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14551,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14517,"src":"22517:3:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":14544,"name":"_storeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14523,"src":"22436:13:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14543,"name":"IStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"22429:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStore_$8658_$","typeString":"type(contract IStore)"}},"id":14545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22429:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStore_$8658","typeString":"contract IStore"}},"id":14546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22451:20:37","memberName":"getDynamicFieldSlice","nodeType":"MemberAccess","referencedDeclaration":9217,"src":"22429:42:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (ResourceId,bytes32[] memory,uint8,uint256,uint256) view external returns (bytes memory)"}},"id":14552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22429:92:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":14521,"id":14553,"nodeType":"Return","src":"22422:99:37"}]},"id":14555,"nodeType":"IfStatement","src":"22270:258:37","trueBody":{"id":14542,"nodeType":"Block","src":"22306:102:37","statements":[{"expression":{"arguments":[{"id":14535,"name":"tableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14508,"src":"22352:7:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},{"id":14536,"name":"keyTuple","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14511,"src":"22361:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":14537,"name":"dynamicFieldIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14513,"src":"22371:17:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":14538,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14515,"src":"22390:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14539,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14517,"src":"22397:3:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14533,"name":"StoreCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12701,"src":"22321:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreCore_$12701_$","typeString":"type(library StoreCore)"}},"id":14534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22331:20:37","memberName":"getDynamicFieldSlice","nodeType":"MemberAccess","referencedDeclaration":12700,"src":"22321:30:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$9486_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint8_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (ResourceId,bytes32[] memory,uint8,uint256,uint256) view returns (bytes memory)"}},"id":14540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22321:80:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":14521,"id":14541,"nodeType":"Return","src":"22314:87:37"}]}}]},"documentation":{"id":14505,"nodeType":"StructuredDocumentation","src":"21539:484:37","text":" @dev Retrieves a slice of a dynamic (variable length) field from a record.\n @param tableId The ID of the table to which the record belongs.\n @param keyTuple An array representing the key for the record.\n @param dynamicFieldIndex The index of the dynamic field from which to get the slice.\n @param start The starting index of the slice.\n @param end The ending index of the slice.\n @return Returns the sliced data from the specified dynamic field."},"implemented":true,"kind":"function","modifiers":[],"name":"getDynamicFieldSlice","nameLocation":"22035:20:37","parameters":{"id":14518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14508,"mutability":"mutable","name":"tableId","nameLocation":"22072:7:37","nodeType":"VariableDeclaration","scope":14557,"src":"22061:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"},"typeName":{"id":14507,"nodeType":"UserDefinedTypeName","pathNode":{"id":14506,"name":"ResourceId","nameLocations":["22061:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":9486,"src":"22061:10:37"},"referencedDeclaration":9486,"src":"22061:10:37","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$9486","typeString":"ResourceId"}},"visibility":"internal"},{"constant":false,"id":14511,"mutability":"mutable","name":"keyTuple","nameLocation":"22102:8:37","nodeType":"VariableDeclaration","scope":14557,"src":"22085:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14509,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22085:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14510,"nodeType":"ArrayTypeName","src":"22085:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":14513,"mutability":"mutable","name":"dynamicFieldIndex","nameLocation":"22122:17:37","nodeType":"VariableDeclaration","scope":14557,"src":"22116:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":14512,"name":"uint8","nodeType":"ElementaryTypeName","src":"22116:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":14515,"mutability":"mutable","name":"start","nameLocation":"22153:5:37","nodeType":"VariableDeclaration","scope":14557,"src":"22145:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14514,"name":"uint256","nodeType":"ElementaryTypeName","src":"22145:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14517,"mutability":"mutable","name":"end","nameLocation":"22172:3:37","nodeType":"VariableDeclaration","scope":14557,"src":"22164:11:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14516,"name":"uint256","nodeType":"ElementaryTypeName","src":"22164:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22055:124:37"},"returnParameters":{"id":14521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14557,"src":"22203:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14519,"name":"bytes","nodeType":"ElementaryTypeName","src":"22203:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22202:14:37"},"scope":14558,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"StoreSwitch","contractDependencies":[],"contractKind":"library","documentation":{"id":13252,"nodeType":"StructuredDocumentation","src":"441:480:37","text":" @title StoreSwitch Library\n @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)\n @notice This library serves as an interface switch to interact with the store,\n         either by directing calls to itself or to a designated external store.\n @dev The primary purpose is to abstract the storage details, such that the\n      calling function doesn't need to know if it's interacting with its own\n      storage or with an external contract's storage."},"fullyImplemented":true,"linearizedBaseContracts":[14558],"name":"StoreSwitch","nameLocation":"930:11:37","scope":14559,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":37}