@latticexyz/world-modules 2.0.0-next.10 → 2.0.0-next.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/out/AccessControl.sol/AccessControl.abi.json +1 -0
  2. package/out/AccessControl.sol/AccessControl.json +1651 -0
  3. package/out/ArrayLib.sol/ArrayLib.json +477 -477
  4. package/out/Balances.sol/Balances.abi.json +1 -0
  5. package/out/Balances.sol/Balances.json +13002 -0
  6. package/out/CallboundDelegationControl.sol/CallboundDelegationControl.json +354 -354
  7. package/out/CallboundDelegations.sol/CallboundDelegations.json +4497 -4497
  8. package/out/DelegationControl.sol/DelegationControl.json +139 -139
  9. package/out/FunctionSelectors.sol/FunctionSelectors.abi.json +1 -0
  10. package/out/FunctionSelectors.sol/FunctionSelectors.json +17874 -0
  11. package/out/Hooks.sol/Hooks.json +45 -45
  12. package/out/IAccessManagementSystem.sol/IAccessManagementSystem.json +18 -18
  13. package/out/IBalanceTransferSystem.sol/IBalanceTransferSystem.json +15 -15
  14. package/out/IBaseWorld.sol/IBaseWorld.json +85 -85
  15. package/out/IBatchCallSystem.sol/IBatchCallSystem.json +15 -15
  16. package/out/IDelegationControl.sol/IDelegationControl.json +11 -11
  17. package/out/ISystemHook.sol/ISystemHook.json +16 -16
  18. package/out/IUniqueEntitySystem.sol/IUniqueEntitySystem.json +25 -25
  19. package/out/IWorldErrors.sol/IWorldErrors.json +19 -19
  20. package/out/IWorldKernel.sol/IWorldCall.json +14 -14
  21. package/out/IWorldKernel.sol/IWorldKernel.json +14 -14
  22. package/out/IWorldKernel.sol/IWorldModuleInstallation.json +14 -14
  23. package/out/IWorldRegistrationSystem.sol/IWorldRegistrationSystem.json +43 -43
  24. package/out/KeysInTable.sol/KeysInTable.json +18190 -18190
  25. package/out/KeysInTableHook.sol/KeysInTableHook.json +1407 -1407
  26. package/out/KeysInTableModule.sol/KeysInTableModule.json +842 -842
  27. package/out/KeysWithValue.sol/KeysWithValue.json +6631 -6631
  28. package/out/KeysWithValueHook.sol/KeysWithValueHook.json +1561 -1561
  29. package/out/KeysWithValueModule.sol/KeysWithValueModule.json +654 -654
  30. package/out/Module.sol/Module.json +119 -119
  31. package/out/NamespaceOwner.sol/NamespaceOwner.abi.json +1 -0
  32. package/out/NamespaceOwner.sol/NamespaceOwner.json +13016 -0
  33. package/out/ResourceAccess.sol/ResourceAccess.abi.json +1 -0
  34. package/out/ResourceAccess.sol/ResourceAccess.json +17296 -0
  35. package/out/ResourceIds.sol/ResourceIds.json +45 -45
  36. package/out/Schema.sol/SchemaInstance.json +30 -30
  37. package/out/Schema.sol/SchemaLib.json +30 -30
  38. package/out/SchemaType.sol/SchemaType.json +729 -729
  39. package/out/StandardDelegationsModule.sol/StandardDelegationsModule.json +452 -452
  40. package/out/StoreHook.sol/StoreHook.json +639 -639
  41. package/out/StoreHooks.sol/StoreHooks.json +45 -45
  42. package/out/System.sol/System.json +32 -32
  43. package/out/SystemHooks.sol/SystemHooks.abi.json +1 -0
  44. package/out/SystemHooks.sol/SystemHooks.json +32460 -0
  45. package/out/SystemSwitch.sol/SystemSwitch.abi.json +1 -0
  46. package/out/SystemSwitch.sol/SystemSwitch.json +2879 -0
  47. package/out/Systems.sol/Systems.abi.json +1 -0
  48. package/out/Systems.sol/Systems.json +18508 -0
  49. package/out/Tables.sol/Tables.json +73 -73
  50. package/out/TimeboundDelegationControl.sol/TimeboundDelegationControl.json +187 -187
  51. package/out/TimeboundDelegations.sol/TimeboundDelegations.json +3474 -3474
  52. package/out/UniqueEntity.sol/UniqueEntity.json +2345 -2345
  53. package/out/UniqueEntityModule.sol/UniqueEntityModule.json +486 -486
  54. package/out/UniqueEntitySystem.sol/UniqueEntitySystem.json +132 -132
  55. package/out/UsedKeysIndex.sol/UsedKeysIndex.json +4590 -4590
  56. package/out/WorldContext.sol/WorldContextConsumer.json +14 -14
  57. package/out/WorldContext.sol/WorldContextConsumerLib.json +14 -14
  58. package/out/WorldContext.sol/WorldContextProviderLib.json +14 -14
  59. package/out/WorldResourceId.sol/WorldResourceIdInstance.json +107 -107
  60. package/out/WorldResourceId.sol/WorldResourceIdLib.json +107 -107
  61. package/out/constants.sol/constants.json +477 -194
  62. package/out/getKeysInTable.sol/getKeysInTable.json +918 -918
  63. package/out/getKeysWithValue.sol/getKeysWithValue.json +431 -431
  64. package/out/getTargetTableId.sol/getTargetTableId.json +272 -272
  65. package/out/getUniqueEntity.sol/getUniqueEntity.json +389 -240
  66. package/out/hasKey.sol/hasKey.json +215 -215
  67. package/out/index.sol/index.json +73 -73
  68. package/out/interfaces/IBaseWorld.sol/IBaseWorld.json +175 -175
  69. package/out/query.sol/query.json +1892 -1892
  70. package/out/revertWithBytes.sol/revertWithBytes.json +52 -52
  71. package/out/src/Bytes.sol/Bytes.json +3766 -3766
  72. package/out/src/FieldLayout.sol/FieldLayoutInstance.json +1204 -1204
  73. package/out/src/FieldLayout.sol/FieldLayoutLib.json +1204 -1204
  74. package/out/src/Hook.sol/HookInstance.abi.json +1 -0
  75. package/out/src/Hook.sol/HookInstance.json +2823 -0
  76. package/out/src/Hook.sol/HookLib.abi.json +1 -0
  77. package/out/src/Hook.sol/HookLib.json +2823 -0
  78. package/out/src/IStore.sol/IStore.json +73 -73
  79. package/out/src/ISystemHook.sol/ISystemHook.abi.json +67 -0
  80. package/out/src/ISystemHook.sol/ISystemHook.abi.json.d.ts +68 -0
  81. package/out/src/ISystemHook.sol/ISystemHook.json +852 -0
  82. package/out/src/IWorldErrors.sol/IWorldErrors.abi.json +189 -0
  83. package/out/src/IWorldErrors.sol/IWorldErrors.abi.json.d.ts +190 -0
  84. package/out/src/IWorldErrors.sol/IWorldErrors.json +1463 -0
  85. package/out/src/IWorldKernel.sol/IWorldCall.json +262 -262
  86. package/out/src/IWorldKernel.sol/IWorldKernel.json +262 -262
  87. package/out/src/IWorldKernel.sol/IWorldModuleInstallation.json +262 -262
  88. package/out/src/Memory.sol/Memory.json +242 -242
  89. package/out/src/PackedCounter.sol/PackedCounterInstance.json +1633 -1633
  90. package/out/src/PackedCounter.sol/PackedCounterLib.json +1633 -1633
  91. package/out/src/ResourceId.sol/ResourceIdInstance.json +206 -206
  92. package/out/src/ResourceId.sol/ResourceIdLib.json +206 -206
  93. package/out/src/Schema.sol/SchemaInstance.json +1351 -1351
  94. package/out/src/Schema.sol/SchemaLib.json +1351 -1351
  95. package/out/src/Slice.sol/SliceInstance.json +802 -802
  96. package/out/src/Slice.sol/SliceLib.json +802 -802
  97. package/out/src/StoreCore.sol/StoreCore.json +7412 -7412
  98. package/out/src/StoreCore.sol/StoreCoreInternal.json +7412 -7412
  99. package/out/src/StoreSwitch.sol/StoreSwitch.json +4064 -4064
  100. package/out/src/WorldContext.sol/WorldContextConsumer.json +805 -805
  101. package/out/src/WorldContext.sol/WorldContextConsumerLib.json +807 -807
  102. package/out/src/WorldContext.sol/WorldContextProviderLib.json +807 -807
  103. package/out/src/WorldResourceId.sol/WorldResourceIdInstance.json +813 -813
  104. package/out/src/WorldResourceId.sol/WorldResourceIdLib.json +813 -813
  105. package/out/storeHookTypes.sol/storeHookTypes.json +204 -204
  106. package/out/storeResourceTypes.sol/storeResourceTypes.json +23 -23
  107. package/out/systemHookTypes.sol/systemHookTypes.json +270 -0
  108. package/out/tables/ResourceIds.sol/ResourceIds.json +2922 -2922
  109. package/out/tables/Tables.sol/Tables.json +12189 -12189
  110. package/out/tightcoder/EncodeArray.sol/EncodeArray.json +6883 -6883
  111. package/out/types.sol/types.json +71 -71
  112. package/out/worldResourceTypes.sol/worldResourceTypes.json +92 -92
  113. package/package.json +8 -8
  114. package/src/modules/uniqueentity/getUniqueEntity.sol +5 -3
  115. package/src/utils/SystemSwitch.sol +82 -0
@@ -0,0 +1,2823 @@
1
+ {
2
+ "abi": [],
3
+ "bytecode": {
4
+ "object": "0x602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000815000a",
5
+ "sourceMap": "376:2091:57:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;376:2091:57;;;;;;;;;;;;;;;;;",
6
+ "linkReferences": {}
7
+ },
8
+ "deployedBytecode": {
9
+ "object": "0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000815000a",
10
+ "sourceMap": "376:2091:57:-:0;;;;;;;;",
11
+ "linkReferences": {}
12
+ },
13
+ "methodIdentifiers": {},
14
+ "rawMetadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for encoding hooks and filtering hooks from a list by address.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"HookLib\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@latticexyz/store/src/Hook.sol\":\"HookLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@latticexyz/=node_modules/@latticexyz/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x770eff7a38b9b7b1613dc11ca09db4f28b42a117c9b39b2a06a650a58a250bdb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39f544110658a53def52c2a4e33b8b158b95a4f14fccea58d5268b6e728d86d4\",\"dweb:/ipfs/QmTesj6tjSFbfAiKUitXapdNYWPStS8bLkB3r22qfyHwUC\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0xab31edce915377852bb5f29f7f2ccfc50cac087d64d2a8aae669715ad862d558\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3187e86e43be1fbdd59df45c695294f1114aa1ac48e6445c0cb26089434be5c4\",\"dweb:/ipfs/Qmck7shMVrcKMVkgN2pC1byPY7hb3V9fTxnUcGgxAUeXYk\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x2a0536cd6cecc479d0b81d5aad6380231f4d6873beadc54814d801c2036b02c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e07c041e19146a9ec258cc700a450b4d49440202895eb12f3bb17508427c23ba\",\"dweb:/ipfs/QmXoqrCGDSkuFgNSMURRFdjokjREL78nLDzNaUi6rjefy9\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0x045024523eb55d08ad8d13eca6185bff2988865f4aa12e3f9372029c2ecb8ddd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6621c53b49f8fe0557d1a1db47bfe1561801c09256948dd0652fb41541891a18\",\"dweb:/ipfs/QmZgFVCUH1pKcc9MeFyzMe1VW87SLz6c9szGwrDRUp6BZe\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x2bbc3c43400c15a91a5cb35430a91309cb64a4d13a0a170eacec71dcf334feaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f44dfc9605067de539de07a76a34bf469faa9e6dad8c192abafc2e05860c7dd2\",\"dweb:/ipfs/QmX8xgG6XWokM7YFwFZvmMhuh1uhkSjxCMD2oTHjUVdapb\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x9092b65551d0f910e5645cebb5acadb387cdd192d75fa89cd6b293bd65b28827\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://478825a6f7eff9ddab968e71e1d55ebee279d3b318f10976d9334384000059c0\",\"dweb:/ipfs/Qme7NY976woRy3RQjE4tkkiwoXnoVtTmER3PbWCSbjZ2kb\"]},\"node_modules/@latticexyz/store/src/IStoreData.sol\":{\"keccak256\":\"0xa8eade05c551aeef35c84727d7a44af239516deb2d8a0cfb7ebeb5d88c6995e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5335910bd8a204abb5f4396fb911a5ee5c221bd7fa63b1cc8ae5e737c6458c6a\",\"dweb:/ipfs/QmckkCAfrNcWo3yDxoD1jCe1k4iDA2GzVDpFjJZs7W79vx\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0xb9070663ded3cad82285bb7610949e422f88abb48c2ddbd792af83d127d64212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://830490f1c888bec86df1e7ef43773d60ebdbdfdb2b91ab7fe074e2f38d7439dc\",\"dweb:/ipfs/QmS26fpXdZuGgMmjcdQDf9k1Bedn2dhjk9byFZJoNkctPZ\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0xdd3104680808f975462a85cbd4fa87783ba5395797419caeeca37e8f8627a16f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943864b7eb16ad2047ade5a8598e85c8a4b46d1aed6aef02bfb7cee8de732b4d\",\"dweb:/ipfs/QmTEij4caToSNk15PFpubXYDy9QhwmPyP9tMXjUse2cTdv\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0xa6777c7868333996ad9c61a94457dcac702d8d7445a104dfdc86543d25e7470e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6268a16449d7529a94746d0103670dd0e38faf5117bf914fb01da9947ab44c2e\",\"dweb:/ipfs/QmaSfbx1QRA3jw2K8bGkQTw4CTGPUzNqnCJW7LwaFUJCXy\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xd2180d53ecd31069b1166f170ecdcd85917ac50f45fc26fb39b49cee7ba00e37\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1494bb0a3228e2d194bddaed4761fd3ca865979f0e3f3a53acd271143a4aa0ac\",\"dweb:/ipfs/Qmaddnzzmu99iP9dTWK9ZeByh5dZyjY9SpVnRdvyr2fBAo\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0xf448fbb2bc9c982721a43234463656da5a49cea08543e62148d54f11e1ac3e2f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://64b3579d9b9dcd73dca2beab3d4fcf60237420945ebbb2e9f4ffcc88f4110115\",\"dweb:/ipfs/QmaW5nN3zGEriSYHncye6Nz2TkAw1oo1CyG2JuJTJrJoXg\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x8b6c7af5ee330928aebb58c8872d3944304ee10ed11f8a325b6accc4ec5df81b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b866d158701c7a40834bed735194b804ef219f2bbe574e2307785fff7bcf9da1\",\"dweb:/ipfs/QmXzJfZkXVfyr2RFGwDuazeVnV3UWYmQxjKZ3KzFbbe75U\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0x69295976e61a1a108d1b4d6eb497b238730309f3047c4320d48e01a0ce8d4ec7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://559c451b21fb9dd4fec27b41bef42f4362f1e7ebb7992106d548b9d4f733b3e5\",\"dweb:/ipfs/QmeSE7YTW5zUrfZYFVb2pFnDe3XxiT8XNecfwC3wfpxCRv\"]},\"node_modules/@latticexyz/store/src/PackedCounter.sol\":{\"keccak256\":\"0x44ddfa9eb8a861462c550f0a9d66c40c68acdb347a61fa765949608407a2c7fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47ee957f4b19cab9e20bf5fc569c015eca13852fb3351f2a105a8be9c48204c0\",\"dweb:/ipfs/QmNkyzDobVQLoq9BtQ8HtgsPLiqnmi97EZx1wsu6wp8nKH\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x40983c580b8958e55db4520095934a535e98544ffe8228327e598973eb6647ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://839d658fa2bb2b1f09a08149d2bf0c26a26c301ad2dda8154fc99458085a695d\",\"dweb:/ipfs/Qmd5jHHYrgqraPqF8bjzT4xyjsoPk8K7pkxXLLfz6MRT6d\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x58aef318ba03f8ff8866ef70f8a30f549b150657ea699734aefe16c298956401\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dc104690a7e2bcf5ce1afadcd58f8ef4d639b4b92b9ad9293656235d54395f3\",\"dweb:/ipfs/QmYJJvEv5KBJ3kzf9AkgRn7Uu5dp4exGTRddf4cae1btgE\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xfaf54b1f5acccd4c6ce3f8377050ee84efbb423cb604b4651e8b9ea3b467bf32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf2ce7ffec21f28ad1dc6da06c342f1212a03a3d16a0be7ee85715a5940718c\",\"dweb:/ipfs/QmTCN3NSdFg87hi7KS2Xtq7PsmRUMG64SxC8PtP3p2GzuT\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x0893905ebe431a414226b479a84a54804091001a406222c748adbd4b651853a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcfcd3848127884041f0bcd727a0e7acbddec283aa6c16ba47abc6a3be720648\",\"dweb:/ipfs/QmY5fBd53e4Ro6vzTZYsteSibSTXVA3GHTeCAiUZTa5DPZ\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x95b7d62d84b43777c54dd1c7d941dbb5ba0afc02c444c30cfdb1de671bbbf180\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe62a2fdb2a73610c3072f31b7f88ed3f9d03c1009fe0f0ef37a7eb814b23534\",\"dweb:/ipfs/QmV85zaV5HAD6eGc5N4RmdtmpR6EwkswVLQTaR2aJqsXrj\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0xf132af10f960a498f49c0534027056e715f4bdcb8fbdb53ac6879c92309ab416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e85a09aeb7543bcd9d74b7ad319ae61e1f7f15a6a0ad9e79aff750fbd18111c7\",\"dweb:/ipfs/QmY6xgqeeaR1FsCPLmFbVgjm1D2UyrXNABKXWLfFaSmBhR\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0xf337a5abb2d43ef00c1c200e7fbec30fc89c7c701e457ab4277194b700d2aea3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eccdf6158076b4e8f1b587a0310228f53323705e054a44eaa7733f38805c3ee6\",\"dweb:/ipfs/QmbXEVNTctg54dK9awdCVyAjeuUjR6ckfmmXBP8DrFmjyq\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xacf4aee01f167b98b2869bdf4407682fd9f18b85507048bc274bcb98d094948c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://86b114326973cef4f59c17e947945d09b90a0c48ede1da80f4f8aed0b6de179c\",\"dweb:/ipfs/QmZ6K6gZnV2ZdgbT8yG7Jz4HgoPymgdX3jTy6oUnG9xdgD\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xc2dc1bd6335fb0cc27cb7a80298d954d9ce0a0e9864d1dd8531aadb66c0ce21d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7e34a386bd44933010c4f5a4dbfe8b0b8e5e9e39eaead46a2ebef0018db9b72\",\"dweb:/ipfs/QmQPyAdLUmE2Y6Ai7t2n56USg25PGHYxxXWRi1zEkdyT6a\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xfecdfde3b41c04dcf43e9c19f84f6a7f77df0fd844928692742b47662a0b814c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://968e83ac99e8d1799730aa6f1f23962c3fe3566cd7ec8bcf97d297823c364764\",\"dweb:/ipfs/QmVnhbeg89ajfLP1U1HDLiWi8T7HuFtsXUydjKXyyPa7MP\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x42b9fd484a055e8e312a2396059fb76a962608fa3a875ea3da6e5aab79084d04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://866fd30788245eb54ac09d70768c0b34846d361b4219781c814fb06e38fb546c\",\"dweb:/ipfs/QmRbLCYjZ9qefcC8q7gnsAUsqCTEjdRtRnXdSNB1x7saPz\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x9e37c64c119ef07ad914bc589ee3f6d67946ab95877978c1ee3e2c1ffae07076\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fad47e542025382aa28e8171253e34f93b2f149434b67a26989542d70218793\",\"dweb:/ipfs/QmW6JsKNwPc6oAMrgcikgR2EPwMUtQANiuZSQSGCd29HHC\"]},\"node_modules/@latticexyz/store/src/leftMask.sol\":{\"keccak256\":\"0xd0360567e4d77c6a8e3d8a5f4bf3653ccde4d268674c50988d55695dc6193f6f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53e6bcb53fcb08ee9426225fdab7c41df91e12cb4f80d92895a6117338627401\",\"dweb:/ipfs/QmeLcaPGeMBpNSTSsPYK3PHpzKuGMjuitCweAWcoXK2mXr\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x60880298016fa117ed9a43ddfd020f11d98a2d345bdcb08e5884e40df98eddd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3619dfda1fd514c0fc5fb34c14d5b5aa41dd6ba6045d37d5f4c8199f3a826f81\",\"dweb:/ipfs/QmbzRBYfVa423gNzCitpGN3i2N9oeGYfinVE1jgtqxnNZX\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0xada1867ba72930fc5cf5562dd4e36de849dbac9c833b7969cb1b046a808fabf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e4b5fdcaa54f567a3f8561c2c3fbc0d68c8dad892a4a8e5418bbce8efc53d84\",\"dweb:/ipfs/QmTWbYJX1yrCqrEwUKB9rGpHdRvLNU8GCkBbxnLjGD4d2t\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x1af0fd984640123391ec2df855d00298504b7ce186a56c2caca769cfd9e08e04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7305a62318890d2cc6420ba7dec13d9f2c1cb67ac689015fc83b9cbccd0696f1\",\"dweb:/ipfs/QmR8jGNLbt64Tv1YZKRVBCVsd71oeUQFzGHHtpsrs4PuRq\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x1c280d24360282e196d9c4833c58c2437108cea2af0ac7596f95be81389e306d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b4556b6eeae9328fbd9adcce346547e823c397503276a4d63effb67e00b5b49\",\"dweb:/ipfs/QmUsynVsMYzjh8oJR8YB7SRrwFMdXcsQsHBrXxLEEFxsiB\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x5cacd4cb371e0a79bc8d64f62349d568fd8b08093c11ae0c3db4f16480d8808b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12b64ddf2b5c19cf68ba93a8153ed79cbafe7a91e015d4b2f25eb1d42ab06256\",\"dweb:/ipfs/QmQz5WwztcuTbSGFv2pkhU3w5scUj1gmavoyUpduxk2v3A\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x01029999a48b7c1d85de84cae465dd24ec126c95b8a865cd20c7ed5dfcc0f02c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9750164ce996badb0fd7df2f526780b9cb9558912405fe46f31064bd7c522491\",\"dweb:/ipfs/QmYf8m2ZXFANRc9ysHgNkNtSF327ccxKYjCUJ49UXBKADk\"]}},\"version\":1}",
15
+ "metadata": {
16
+ "compiler": {
17
+ "version": "0.8.21+commit.d9974bed"
18
+ },
19
+ "language": "Solidity",
20
+ "output": {
21
+ "abi": [],
22
+ "devdoc": {
23
+ "kind": "dev",
24
+ "methods": {},
25
+ "version": 1
26
+ },
27
+ "userdoc": {
28
+ "kind": "user",
29
+ "methods": {},
30
+ "version": 1
31
+ }
32
+ },
33
+ "settings": {
34
+ "remappings": [
35
+ "@latticexyz/=node_modules/@latticexyz/",
36
+ "ds-test/=node_modules/ds-test/src/",
37
+ "forge-std/=node_modules/forge-std/src/"
38
+ ],
39
+ "optimizer": {
40
+ "enabled": true,
41
+ "runs": 3000
42
+ },
43
+ "metadata": {
44
+ "bytecodeHash": "none"
45
+ },
46
+ "compilationTarget": {
47
+ "node_modules/@latticexyz/store/src/Hook.sol": "HookLib"
48
+ },
49
+ "libraries": {}
50
+ },
51
+ "sources": {
52
+ "node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol": {
53
+ "keccak256": "0x770eff7a38b9b7b1613dc11ca09db4f28b42a117c9b39b2a06a650a58a250bdb",
54
+ "urls": [
55
+ "bzz-raw://39f544110658a53def52c2a4e33b8b158b95a4f14fccea58d5268b6e728d86d4",
56
+ "dweb:/ipfs/QmTesj6tjSFbfAiKUitXapdNYWPStS8bLkB3r22qfyHwUC"
57
+ ],
58
+ "license": "MIT"
59
+ },
60
+ "node_modules/@latticexyz/store/src/Bytes.sol": {
61
+ "keccak256": "0xab31edce915377852bb5f29f7f2ccfc50cac087d64d2a8aae669715ad862d558",
62
+ "urls": [
63
+ "bzz-raw://3187e86e43be1fbdd59df45c695294f1114aa1ac48e6445c0cb26089434be5c4",
64
+ "dweb:/ipfs/Qmck7shMVrcKMVkgN2pC1byPY7hb3V9fTxnUcGgxAUeXYk"
65
+ ],
66
+ "license": "MIT"
67
+ },
68
+ "node_modules/@latticexyz/store/src/FieldLayout.sol": {
69
+ "keccak256": "0x2a0536cd6cecc479d0b81d5aad6380231f4d6873beadc54814d801c2036b02c0",
70
+ "urls": [
71
+ "bzz-raw://e07c041e19146a9ec258cc700a450b4d49440202895eb12f3bb17508427c23ba",
72
+ "dweb:/ipfs/QmXoqrCGDSkuFgNSMURRFdjokjREL78nLDzNaUi6rjefy9"
73
+ ],
74
+ "license": "MIT"
75
+ },
76
+ "node_modules/@latticexyz/store/src/Hook.sol": {
77
+ "keccak256": "0x045024523eb55d08ad8d13eca6185bff2988865f4aa12e3f9372029c2ecb8ddd",
78
+ "urls": [
79
+ "bzz-raw://6621c53b49f8fe0557d1a1db47bfe1561801c09256948dd0652fb41541891a18",
80
+ "dweb:/ipfs/QmZgFVCUH1pKcc9MeFyzMe1VW87SLz6c9szGwrDRUp6BZe"
81
+ ],
82
+ "license": "MIT"
83
+ },
84
+ "node_modules/@latticexyz/store/src/IERC165.sol": {
85
+ "keccak256": "0x2bbc3c43400c15a91a5cb35430a91309cb64a4d13a0a170eacec71dcf334feaf",
86
+ "urls": [
87
+ "bzz-raw://f44dfc9605067de539de07a76a34bf469faa9e6dad8c192abafc2e05860c7dd2",
88
+ "dweb:/ipfs/QmX8xgG6XWokM7YFwFZvmMhuh1uhkSjxCMD2oTHjUVdapb"
89
+ ],
90
+ "license": "MIT"
91
+ },
92
+ "node_modules/@latticexyz/store/src/IStore.sol": {
93
+ "keccak256": "0x9092b65551d0f910e5645cebb5acadb387cdd192d75fa89cd6b293bd65b28827",
94
+ "urls": [
95
+ "bzz-raw://478825a6f7eff9ddab968e71e1d55ebee279d3b318f10976d9334384000059c0",
96
+ "dweb:/ipfs/Qme7NY976woRy3RQjE4tkkiwoXnoVtTmER3PbWCSbjZ2kb"
97
+ ],
98
+ "license": "MIT"
99
+ },
100
+ "node_modules/@latticexyz/store/src/IStoreData.sol": {
101
+ "keccak256": "0xa8eade05c551aeef35c84727d7a44af239516deb2d8a0cfb7ebeb5d88c6995e5",
102
+ "urls": [
103
+ "bzz-raw://5335910bd8a204abb5f4396fb911a5ee5c221bd7fa63b1cc8ae5e737c6458c6a",
104
+ "dweb:/ipfs/QmckkCAfrNcWo3yDxoD1jCe1k4iDA2GzVDpFjJZs7W79vx"
105
+ ],
106
+ "license": "MIT"
107
+ },
108
+ "node_modules/@latticexyz/store/src/IStoreErrors.sol": {
109
+ "keccak256": "0xb9070663ded3cad82285bb7610949e422f88abb48c2ddbd792af83d127d64212",
110
+ "urls": [
111
+ "bzz-raw://830490f1c888bec86df1e7ef43773d60ebdbdfdb2b91ab7fe074e2f38d7439dc",
112
+ "dweb:/ipfs/QmS26fpXdZuGgMmjcdQDf9k1Bedn2dhjk9byFZJoNkctPZ"
113
+ ],
114
+ "license": "MIT"
115
+ },
116
+ "node_modules/@latticexyz/store/src/IStoreEvents.sol": {
117
+ "keccak256": "0xdd3104680808f975462a85cbd4fa87783ba5395797419caeeca37e8f8627a16f",
118
+ "urls": [
119
+ "bzz-raw://943864b7eb16ad2047ade5a8598e85c8a4b46d1aed6aef02bfb7cee8de732b4d",
120
+ "dweb:/ipfs/QmTEij4caToSNk15PFpubXYDy9QhwmPyP9tMXjUse2cTdv"
121
+ ],
122
+ "license": "MIT"
123
+ },
124
+ "node_modules/@latticexyz/store/src/IStoreHook.sol": {
125
+ "keccak256": "0xa6777c7868333996ad9c61a94457dcac702d8d7445a104dfdc86543d25e7470e",
126
+ "urls": [
127
+ "bzz-raw://6268a16449d7529a94746d0103670dd0e38faf5117bf914fb01da9947ab44c2e",
128
+ "dweb:/ipfs/QmaSfbx1QRA3jw2K8bGkQTw4CTGPUzNqnCJW7LwaFUJCXy"
129
+ ],
130
+ "license": "MIT"
131
+ },
132
+ "node_modules/@latticexyz/store/src/IStoreRead.sol": {
133
+ "keccak256": "0xd2180d53ecd31069b1166f170ecdcd85917ac50f45fc26fb39b49cee7ba00e37",
134
+ "urls": [
135
+ "bzz-raw://1494bb0a3228e2d194bddaed4761fd3ca865979f0e3f3a53acd271143a4aa0ac",
136
+ "dweb:/ipfs/Qmaddnzzmu99iP9dTWK9ZeByh5dZyjY9SpVnRdvyr2fBAo"
137
+ ],
138
+ "license": "MIT"
139
+ },
140
+ "node_modules/@latticexyz/store/src/IStoreRegistration.sol": {
141
+ "keccak256": "0xf448fbb2bc9c982721a43234463656da5a49cea08543e62148d54f11e1ac3e2f",
142
+ "urls": [
143
+ "bzz-raw://64b3579d9b9dcd73dca2beab3d4fcf60237420945ebbb2e9f4ffcc88f4110115",
144
+ "dweb:/ipfs/QmaW5nN3zGEriSYHncye6Nz2TkAw1oo1CyG2JuJTJrJoXg"
145
+ ],
146
+ "license": "MIT"
147
+ },
148
+ "node_modules/@latticexyz/store/src/IStoreWrite.sol": {
149
+ "keccak256": "0x8b6c7af5ee330928aebb58c8872d3944304ee10ed11f8a325b6accc4ec5df81b",
150
+ "urls": [
151
+ "bzz-raw://b866d158701c7a40834bed735194b804ef219f2bbe574e2307785fff7bcf9da1",
152
+ "dweb:/ipfs/QmXzJfZkXVfyr2RFGwDuazeVnV3UWYmQxjKZ3KzFbbe75U"
153
+ ],
154
+ "license": "MIT"
155
+ },
156
+ "node_modules/@latticexyz/store/src/Memory.sol": {
157
+ "keccak256": "0x69295976e61a1a108d1b4d6eb497b238730309f3047c4320d48e01a0ce8d4ec7",
158
+ "urls": [
159
+ "bzz-raw://559c451b21fb9dd4fec27b41bef42f4362f1e7ebb7992106d548b9d4f733b3e5",
160
+ "dweb:/ipfs/QmeSE7YTW5zUrfZYFVb2pFnDe3XxiT8XNecfwC3wfpxCRv"
161
+ ],
162
+ "license": "MIT"
163
+ },
164
+ "node_modules/@latticexyz/store/src/PackedCounter.sol": {
165
+ "keccak256": "0x44ddfa9eb8a861462c550f0a9d66c40c68acdb347a61fa765949608407a2c7fb",
166
+ "urls": [
167
+ "bzz-raw://47ee957f4b19cab9e20bf5fc569c015eca13852fb3351f2a105a8be9c48204c0",
168
+ "dweb:/ipfs/QmNkyzDobVQLoq9BtQ8HtgsPLiqnmi97EZx1wsu6wp8nKH"
169
+ ],
170
+ "license": "MIT"
171
+ },
172
+ "node_modules/@latticexyz/store/src/ResourceId.sol": {
173
+ "keccak256": "0x40983c580b8958e55db4520095934a535e98544ffe8228327e598973eb6647ed",
174
+ "urls": [
175
+ "bzz-raw://839d658fa2bb2b1f09a08149d2bf0c26a26c301ad2dda8154fc99458085a695d",
176
+ "dweb:/ipfs/Qmd5jHHYrgqraPqF8bjzT4xyjsoPk8K7pkxXLLfz6MRT6d"
177
+ ],
178
+ "license": "MIT"
179
+ },
180
+ "node_modules/@latticexyz/store/src/Schema.sol": {
181
+ "keccak256": "0x58aef318ba03f8ff8866ef70f8a30f549b150657ea699734aefe16c298956401",
182
+ "urls": [
183
+ "bzz-raw://7dc104690a7e2bcf5ce1afadcd58f8ef4d639b4b92b9ad9293656235d54395f3",
184
+ "dweb:/ipfs/QmYJJvEv5KBJ3kzf9AkgRn7Uu5dp4exGTRddf4cae1btgE"
185
+ ],
186
+ "license": "MIT"
187
+ },
188
+ "node_modules/@latticexyz/store/src/Slice.sol": {
189
+ "keccak256": "0xfaf54b1f5acccd4c6ce3f8377050ee84efbb423cb604b4651e8b9ea3b467bf32",
190
+ "urls": [
191
+ "bzz-raw://acf2ce7ffec21f28ad1dc6da06c342f1212a03a3d16a0be7ee85715a5940718c",
192
+ "dweb:/ipfs/QmTCN3NSdFg87hi7KS2Xtq7PsmRUMG64SxC8PtP3p2GzuT"
193
+ ],
194
+ "license": "MIT"
195
+ },
196
+ "node_modules/@latticexyz/store/src/Storage.sol": {
197
+ "keccak256": "0x0893905ebe431a414226b479a84a54804091001a406222c748adbd4b651853a5",
198
+ "urls": [
199
+ "bzz-raw://bcfcd3848127884041f0bcd727a0e7acbddec283aa6c16ba47abc6a3be720648",
200
+ "dweb:/ipfs/QmY5fBd53e4Ro6vzTZYsteSibSTXVA3GHTeCAiUZTa5DPZ"
201
+ ],
202
+ "license": "MIT"
203
+ },
204
+ "node_modules/@latticexyz/store/src/StoreCore.sol": {
205
+ "keccak256": "0x95b7d62d84b43777c54dd1c7d941dbb5ba0afc02c444c30cfdb1de671bbbf180",
206
+ "urls": [
207
+ "bzz-raw://fe62a2fdb2a73610c3072f31b7f88ed3f9d03c1009fe0f0ef37a7eb814b23534",
208
+ "dweb:/ipfs/QmV85zaV5HAD6eGc5N4RmdtmpR6EwkswVLQTaR2aJqsXrj"
209
+ ],
210
+ "license": "MIT"
211
+ },
212
+ "node_modules/@latticexyz/store/src/StoreSwitch.sol": {
213
+ "keccak256": "0xf132af10f960a498f49c0534027056e715f4bdcb8fbdb53ac6879c92309ab416",
214
+ "urls": [
215
+ "bzz-raw://e85a09aeb7543bcd9d74b7ad319ae61e1f7f15a6a0ad9e79aff750fbd18111c7",
216
+ "dweb:/ipfs/QmY6xgqeeaR1FsCPLmFbVgjm1D2UyrXNABKXWLfFaSmBhR"
217
+ ],
218
+ "license": "MIT"
219
+ },
220
+ "node_modules/@latticexyz/store/src/codegen/index.sol": {
221
+ "keccak256": "0xf337a5abb2d43ef00c1c200e7fbec30fc89c7c701e457ab4277194b700d2aea3",
222
+ "urls": [
223
+ "bzz-raw://eccdf6158076b4e8f1b587a0310228f53323705e054a44eaa7733f38805c3ee6",
224
+ "dweb:/ipfs/QmbXEVNTctg54dK9awdCVyAjeuUjR6ckfmmXBP8DrFmjyq"
225
+ ],
226
+ "license": "MIT"
227
+ },
228
+ "node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol": {
229
+ "keccak256": "0xacf4aee01f167b98b2869bdf4407682fd9f18b85507048bc274bcb98d094948c",
230
+ "urls": [
231
+ "bzz-raw://86b114326973cef4f59c17e947945d09b90a0c48ede1da80f4f8aed0b6de179c",
232
+ "dweb:/ipfs/QmZ6K6gZnV2ZdgbT8yG7Jz4HgoPymgdX3jTy6oUnG9xdgD"
233
+ ],
234
+ "license": "MIT"
235
+ },
236
+ "node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol": {
237
+ "keccak256": "0xc2dc1bd6335fb0cc27cb7a80298d954d9ce0a0e9864d1dd8531aadb66c0ce21d",
238
+ "urls": [
239
+ "bzz-raw://a7e34a386bd44933010c4f5a4dbfe8b0b8e5e9e39eaead46a2ebef0018db9b72",
240
+ "dweb:/ipfs/QmQPyAdLUmE2Y6Ai7t2n56USg25PGHYxxXWRi1zEkdyT6a"
241
+ ],
242
+ "license": "MIT"
243
+ },
244
+ "node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol": {
245
+ "keccak256": "0xfecdfde3b41c04dcf43e9c19f84f6a7f77df0fd844928692742b47662a0b814c",
246
+ "urls": [
247
+ "bzz-raw://968e83ac99e8d1799730aa6f1f23962c3fe3566cd7ec8bcf97d297823c364764",
248
+ "dweb:/ipfs/QmVnhbeg89ajfLP1U1HDLiWi8T7HuFtsXUydjKXyyPa7MP"
249
+ ],
250
+ "license": "MIT"
251
+ },
252
+ "node_modules/@latticexyz/store/src/codegen/tables/Tables.sol": {
253
+ "keccak256": "0x42b9fd484a055e8e312a2396059fb76a962608fa3a875ea3da6e5aab79084d04",
254
+ "urls": [
255
+ "bzz-raw://866fd30788245eb54ac09d70768c0b34846d361b4219781c814fb06e38fb546c",
256
+ "dweb:/ipfs/QmRbLCYjZ9qefcC8q7gnsAUsqCTEjdRtRnXdSNB1x7saPz"
257
+ ],
258
+ "license": "MIT"
259
+ },
260
+ "node_modules/@latticexyz/store/src/constants.sol": {
261
+ "keccak256": "0x9e37c64c119ef07ad914bc589ee3f6d67946ab95877978c1ee3e2c1ffae07076",
262
+ "urls": [
263
+ "bzz-raw://3fad47e542025382aa28e8171253e34f93b2f149434b67a26989542d70218793",
264
+ "dweb:/ipfs/QmW6JsKNwPc6oAMrgcikgR2EPwMUtQANiuZSQSGCd29HHC"
265
+ ],
266
+ "license": "MIT"
267
+ },
268
+ "node_modules/@latticexyz/store/src/leftMask.sol": {
269
+ "keccak256": "0xd0360567e4d77c6a8e3d8a5f4bf3653ccde4d268674c50988d55695dc6193f6f",
270
+ "urls": [
271
+ "bzz-raw://53e6bcb53fcb08ee9426225fdab7c41df91e12cb4f80d92895a6117338627401",
272
+ "dweb:/ipfs/QmeLcaPGeMBpNSTSsPYK3PHpzKuGMjuitCweAWcoXK2mXr"
273
+ ],
274
+ "license": "MIT"
275
+ },
276
+ "node_modules/@latticexyz/store/src/storeHookTypes.sol": {
277
+ "keccak256": "0x60880298016fa117ed9a43ddfd020f11d98a2d345bdcb08e5884e40df98eddd5",
278
+ "urls": [
279
+ "bzz-raw://3619dfda1fd514c0fc5fb34c14d5b5aa41dd6ba6045d37d5f4c8199f3a826f81",
280
+ "dweb:/ipfs/QmbzRBYfVa423gNzCitpGN3i2N9oeGYfinVE1jgtqxnNZX"
281
+ ],
282
+ "license": "MIT"
283
+ },
284
+ "node_modules/@latticexyz/store/src/storeResourceTypes.sol": {
285
+ "keccak256": "0xada1867ba72930fc5cf5562dd4e36de849dbac9c833b7969cb1b046a808fabf2",
286
+ "urls": [
287
+ "bzz-raw://6e4b5fdcaa54f567a3f8561c2c3fbc0d68c8dad892a4a8e5418bbce8efc53d84",
288
+ "dweb:/ipfs/QmTWbYJX1yrCqrEwUKB9rGpHdRvLNU8GCkBbxnLjGD4d2t"
289
+ ],
290
+ "license": "MIT"
291
+ },
292
+ "node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol": {
293
+ "keccak256": "0x1af0fd984640123391ec2df855d00298504b7ce186a56c2caca769cfd9e08e04",
294
+ "urls": [
295
+ "bzz-raw://7305a62318890d2cc6420ba7dec13d9f2c1cb67ac689015fc83b9cbccd0696f1",
296
+ "dweb:/ipfs/QmR8jGNLbt64Tv1YZKRVBCVsd71oeUQFzGHHtpsrs4PuRq"
297
+ ],
298
+ "license": "MIT"
299
+ },
300
+ "node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol": {
301
+ "keccak256": "0x1c280d24360282e196d9c4833c58c2437108cea2af0ac7596f95be81389e306d",
302
+ "urls": [
303
+ "bzz-raw://6b4556b6eeae9328fbd9adcce346547e823c397503276a4d63effb67e00b5b49",
304
+ "dweb:/ipfs/QmUsynVsMYzjh8oJR8YB7SRrwFMdXcsQsHBrXxLEEFxsiB"
305
+ ],
306
+ "license": "MIT"
307
+ },
308
+ "node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol": {
309
+ "keccak256": "0x5cacd4cb371e0a79bc8d64f62349d568fd8b08093c11ae0c3db4f16480d8808b",
310
+ "urls": [
311
+ "bzz-raw://12b64ddf2b5c19cf68ba93a8153ed79cbafe7a91e015d4b2f25eb1d42ab06256",
312
+ "dweb:/ipfs/QmQz5WwztcuTbSGFv2pkhU3w5scUj1gmavoyUpduxk2v3A"
313
+ ],
314
+ "license": "MIT"
315
+ },
316
+ "node_modules/@latticexyz/store/src/version.sol": {
317
+ "keccak256": "0x01029999a48b7c1d85de84cae465dd24ec126c95b8a865cd20c7ed5dfcc0f02c",
318
+ "urls": [
319
+ "bzz-raw://9750164ce996badb0fd7df2f526780b9cb9558912405fe46f31064bd7c522491",
320
+ "dweb:/ipfs/QmYf8m2ZXFANRc9ysHgNkNtSF327ccxKYjCUJ49UXBKADk"
321
+ ],
322
+ "license": "MIT"
323
+ }
324
+ },
325
+ "version": 1
326
+ },
327
+ "ast": {
328
+ "absolutePath": "node_modules/@latticexyz/store/src/Hook.sol",
329
+ "id": 28436,
330
+ "exportedSymbols": {
331
+ "Hook": [
332
+ 28246
333
+ ],
334
+ "HookInstance": [
335
+ 28435
336
+ ],
337
+ "HookLib": [
338
+ 28370
339
+ ],
340
+ "Hooks": [
341
+ 70084
342
+ ],
343
+ "ResourceId": [
344
+ 29139
345
+ ]
346
+ },
347
+ "nodeType": "SourceUnit",
348
+ "src": "32:3793:57",
349
+ "nodes": [
350
+ {
351
+ "id": 28240,
352
+ "nodeType": "PragmaDirective",
353
+ "src": "32:25:57",
354
+ "nodes": [],
355
+ "literals": [
356
+ "solidity",
357
+ ">=",
358
+ "0.8",
359
+ ".21"
360
+ ]
361
+ },
362
+ {
363
+ "id": 28242,
364
+ "nodeType": "ImportDirective",
365
+ "src": "59:51:57",
366
+ "nodes": [],
367
+ "absolutePath": "node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol",
368
+ "file": "./codegen/tables/Hooks.sol",
369
+ "nameLocation": "-1:-1:-1",
370
+ "scope": 28436,
371
+ "sourceUnit": 70085,
372
+ "symbolAliases": [
373
+ {
374
+ "foreign": {
375
+ "id": 28241,
376
+ "name": "Hooks",
377
+ "nodeType": "Identifier",
378
+ "overloadedDeclarations": [],
379
+ "referencedDeclaration": 70084,
380
+ "src": "68:5:57",
381
+ "typeDescriptions": {}
382
+ },
383
+ "nameLocation": "-1:-1:-1"
384
+ }
385
+ ],
386
+ "unitAlias": ""
387
+ },
388
+ {
389
+ "id": 28244,
390
+ "nodeType": "ImportDirective",
391
+ "src": "111:46:57",
392
+ "nodes": [],
393
+ "absolutePath": "node_modules/@latticexyz/store/src/ResourceId.sol",
394
+ "file": "./ResourceId.sol",
395
+ "nameLocation": "-1:-1:-1",
396
+ "scope": 28436,
397
+ "sourceUnit": 29211,
398
+ "symbolAliases": [
399
+ {
400
+ "foreign": {
401
+ "id": 28243,
402
+ "name": "ResourceId",
403
+ "nodeType": "Identifier",
404
+ "overloadedDeclarations": [],
405
+ "referencedDeclaration": 29139,
406
+ "src": "120:10:57",
407
+ "typeDescriptions": {}
408
+ },
409
+ "nameLocation": "-1:-1:-1"
410
+ }
411
+ ],
412
+ "unitAlias": ""
413
+ },
414
+ {
415
+ "id": 28246,
416
+ "nodeType": "UserDefinedValueTypeDefinition",
417
+ "src": "211:21:57",
418
+ "nodes": [],
419
+ "canonicalName": "Hook",
420
+ "name": "Hook",
421
+ "nameLocation": "216:4:57",
422
+ "underlyingType": {
423
+ "id": 28245,
424
+ "name": "bytes21",
425
+ "nodeType": "ElementaryTypeName",
426
+ "src": "224:7:57",
427
+ "typeDescriptions": {
428
+ "typeIdentifier": "t_bytes21",
429
+ "typeString": "bytes21"
430
+ }
431
+ }
432
+ },
433
+ {
434
+ "id": 28250,
435
+ "nodeType": "UsingForDirective",
436
+ "src": "234:35:57",
437
+ "nodes": [],
438
+ "global": true,
439
+ "libraryName": {
440
+ "id": 28247,
441
+ "name": "HookInstance",
442
+ "nameLocations": [
443
+ "240:12:57"
444
+ ],
445
+ "nodeType": "IdentifierPath",
446
+ "referencedDeclaration": 28435,
447
+ "src": "240:12:57"
448
+ },
449
+ "typeName": {
450
+ "id": 28249,
451
+ "nodeType": "UserDefinedTypeName",
452
+ "pathNode": {
453
+ "id": 28248,
454
+ "name": "Hook",
455
+ "nameLocations": [
456
+ "257:4:57"
457
+ ],
458
+ "nodeType": "IdentifierPath",
459
+ "referencedDeclaration": 28246,
460
+ "src": "257:4:57"
461
+ },
462
+ "referencedDeclaration": 28246,
463
+ "src": "257:4:57",
464
+ "typeDescriptions": {
465
+ "typeIdentifier": "t_userDefinedValueType$_Hook_$28246",
466
+ "typeString": "Hook"
467
+ }
468
+ }
469
+ },
470
+ {
471
+ "id": 28370,
472
+ "nodeType": "ContractDefinition",
473
+ "src": "376:2091:57",
474
+ "nodes": [
475
+ {
476
+ "id": 28282,
477
+ "nodeType": "FunctionDefinition",
478
+ "src": "784:263:57",
479
+ "nodes": [],
480
+ "body": {
481
+ "id": 28281,
482
+ "nodeType": "Block",
483
+ "src": "870:177:57",
484
+ "nodes": [],
485
+ "statements": [
486
+ {
487
+ "expression": {
488
+ "arguments": [
489
+ {
490
+ "commonType": {
491
+ "typeIdentifier": "t_bytes21",
492
+ "typeString": "bytes21"
493
+ },
494
+ "id": 28278,
495
+ "isConstant": false,
496
+ "isLValue": false,
497
+ "isPure": false,
498
+ "lValueRequested": false,
499
+ "leftExpression": {
500
+ "arguments": [
501
+ {
502
+ "arguments": [
503
+ {
504
+ "id": 28268,
505
+ "name": "hookAddress",
506
+ "nodeType": "Identifier",
507
+ "overloadedDeclarations": [],
508
+ "referencedDeclaration": 28254,
509
+ "src": "995:11:57",
510
+ "typeDescriptions": {
511
+ "typeIdentifier": "t_address",
512
+ "typeString": "address"
513
+ }
514
+ }
515
+ ],
516
+ "expression": {
517
+ "argumentTypes": [
518
+ {
519
+ "typeIdentifier": "t_address",
520
+ "typeString": "address"
521
+ }
522
+ ],
523
+ "id": 28267,
524
+ "isConstant": false,
525
+ "isLValue": false,
526
+ "isPure": true,
527
+ "lValueRequested": false,
528
+ "nodeType": "ElementaryTypeNameExpression",
529
+ "src": "987:7:57",
530
+ "typeDescriptions": {
531
+ "typeIdentifier": "t_type$_t_bytes20_$",
532
+ "typeString": "type(bytes20)"
533
+ },
534
+ "typeName": {
535
+ "id": 28266,
536
+ "name": "bytes20",
537
+ "nodeType": "ElementaryTypeName",
538
+ "src": "987:7:57",
539
+ "typeDescriptions": {}
540
+ }
541
+ },
542
+ "id": 28269,
543
+ "isConstant": false,
544
+ "isLValue": false,
545
+ "isPure": false,
546
+ "kind": "typeConversion",
547
+ "lValueRequested": false,
548
+ "nameLocations": [],
549
+ "names": [],
550
+ "nodeType": "FunctionCall",
551
+ "src": "987:20:57",
552
+ "tryCall": false,
553
+ "typeDescriptions": {
554
+ "typeIdentifier": "t_bytes20",
555
+ "typeString": "bytes20"
556
+ }
557
+ }
558
+ ],
559
+ "expression": {
560
+ "argumentTypes": [
561
+ {
562
+ "typeIdentifier": "t_bytes20",
563
+ "typeString": "bytes20"
564
+ }
565
+ ],
566
+ "id": 28265,
567
+ "isConstant": false,
568
+ "isLValue": false,
569
+ "isPure": true,
570
+ "lValueRequested": false,
571
+ "nodeType": "ElementaryTypeNameExpression",
572
+ "src": "979:7:57",
573
+ "typeDescriptions": {
574
+ "typeIdentifier": "t_type$_t_bytes21_$",
575
+ "typeString": "type(bytes21)"
576
+ },
577
+ "typeName": {
578
+ "id": 28264,
579
+ "name": "bytes21",
580
+ "nodeType": "ElementaryTypeName",
581
+ "src": "979:7:57",
582
+ "typeDescriptions": {}
583
+ }
584
+ },
585
+ "id": 28270,
586
+ "isConstant": false,
587
+ "isLValue": false,
588
+ "isPure": false,
589
+ "kind": "typeConversion",
590
+ "lValueRequested": false,
591
+ "nameLocations": [],
592
+ "names": [],
593
+ "nodeType": "FunctionCall",
594
+ "src": "979:29:57",
595
+ "tryCall": false,
596
+ "typeDescriptions": {
597
+ "typeIdentifier": "t_bytes21",
598
+ "typeString": "bytes21"
599
+ }
600
+ },
601
+ "nodeType": "BinaryOperation",
602
+ "operator": "|",
603
+ "rightExpression": {
604
+ "arguments": [
605
+ {
606
+ "arguments": [
607
+ {
608
+ "id": 28275,
609
+ "name": "encodedHooks",
610
+ "nodeType": "Identifier",
611
+ "overloadedDeclarations": [],
612
+ "referencedDeclaration": 28256,
613
+ "src": "1027:12:57",
614
+ "typeDescriptions": {
615
+ "typeIdentifier": "t_uint8",
616
+ "typeString": "uint8"
617
+ }
618
+ }
619
+ ],
620
+ "expression": {
621
+ "argumentTypes": [
622
+ {
623
+ "typeIdentifier": "t_uint8",
624
+ "typeString": "uint8"
625
+ }
626
+ ],
627
+ "id": 28274,
628
+ "isConstant": false,
629
+ "isLValue": false,
630
+ "isPure": true,
631
+ "lValueRequested": false,
632
+ "nodeType": "ElementaryTypeNameExpression",
633
+ "src": "1019:7:57",
634
+ "typeDescriptions": {
635
+ "typeIdentifier": "t_type$_t_uint168_$",
636
+ "typeString": "type(uint168)"
637
+ },
638
+ "typeName": {
639
+ "id": 28273,
640
+ "name": "uint168",
641
+ "nodeType": "ElementaryTypeName",
642
+ "src": "1019:7:57",
643
+ "typeDescriptions": {}
644
+ }
645
+ },
646
+ "id": 28276,
647
+ "isConstant": false,
648
+ "isLValue": false,
649
+ "isPure": false,
650
+ "kind": "typeConversion",
651
+ "lValueRequested": false,
652
+ "nameLocations": [],
653
+ "names": [],
654
+ "nodeType": "FunctionCall",
655
+ "src": "1019:21:57",
656
+ "tryCall": false,
657
+ "typeDescriptions": {
658
+ "typeIdentifier": "t_uint168",
659
+ "typeString": "uint168"
660
+ }
661
+ }
662
+ ],
663
+ "expression": {
664
+ "argumentTypes": [
665
+ {
666
+ "typeIdentifier": "t_uint168",
667
+ "typeString": "uint168"
668
+ }
669
+ ],
670
+ "id": 28272,
671
+ "isConstant": false,
672
+ "isLValue": false,
673
+ "isPure": true,
674
+ "lValueRequested": false,
675
+ "nodeType": "ElementaryTypeNameExpression",
676
+ "src": "1011:7:57",
677
+ "typeDescriptions": {
678
+ "typeIdentifier": "t_type$_t_bytes21_$",
679
+ "typeString": "type(bytes21)"
680
+ },
681
+ "typeName": {
682
+ "id": 28271,
683
+ "name": "bytes21",
684
+ "nodeType": "ElementaryTypeName",
685
+ "src": "1011:7:57",
686
+ "typeDescriptions": {}
687
+ }
688
+ },
689
+ "id": 28277,
690
+ "isConstant": false,
691
+ "isLValue": false,
692
+ "isPure": false,
693
+ "kind": "typeConversion",
694
+ "lValueRequested": false,
695
+ "nameLocations": [],
696
+ "names": [],
697
+ "nodeType": "FunctionCall",
698
+ "src": "1011:30:57",
699
+ "tryCall": false,
700
+ "typeDescriptions": {
701
+ "typeIdentifier": "t_bytes21",
702
+ "typeString": "bytes21"
703
+ }
704
+ },
705
+ "src": "979:62:57",
706
+ "typeDescriptions": {
707
+ "typeIdentifier": "t_bytes21",
708
+ "typeString": "bytes21"
709
+ }
710
+ }
711
+ ],
712
+ "expression": {
713
+ "argumentTypes": [
714
+ {
715
+ "typeIdentifier": "t_bytes21",
716
+ "typeString": "bytes21"
717
+ }
718
+ ],
719
+ "expression": {
720
+ "id": 28262,
721
+ "name": "Hook",
722
+ "nodeType": "Identifier",
723
+ "overloadedDeclarations": [],
724
+ "referencedDeclaration": 28246,
725
+ "src": "969:4:57",
726
+ "typeDescriptions": {
727
+ "typeIdentifier": "t_type$_t_userDefinedValueType$_Hook_$28246_$",
728
+ "typeString": "type(Hook)"
729
+ }
730
+ },
731
+ "id": 28263,
732
+ "isConstant": false,
733
+ "isLValue": false,
734
+ "isPure": true,
735
+ "lValueRequested": false,
736
+ "memberLocation": "974:4:57",
737
+ "memberName": "wrap",
738
+ "nodeType": "MemberAccess",
739
+ "src": "969:9:57",
740
+ "typeDescriptions": {
741
+ "typeIdentifier": "t_function_wrap_pure$_t_bytes21_$returns$_t_userDefinedValueType$_Hook_$28246_$",
742
+ "typeString": "function (bytes21) pure returns (Hook)"
743
+ }
744
+ },
745
+ "id": 28279,
746
+ "isConstant": false,
747
+ "isLValue": false,
748
+ "isPure": false,
749
+ "kind": "functionCall",
750
+ "lValueRequested": false,
751
+ "nameLocations": [],
752
+ "names": [],
753
+ "nodeType": "FunctionCall",
754
+ "src": "969:73:57",
755
+ "tryCall": false,
756
+ "typeDescriptions": {
757
+ "typeIdentifier": "t_userDefinedValueType$_Hook_$28246",
758
+ "typeString": "Hook"
759
+ }
760
+ },
761
+ "functionReturnParameters": 28261,
762
+ "id": 28280,
763
+ "nodeType": "Return",
764
+ "src": "962:80:57"
765
+ }
766
+ ]
767
+ },
768
+ "documentation": {
769
+ "id": 28252,
770
+ "nodeType": "StructuredDocumentation",
771
+ "src": "396:385:57",
772
+ "text": " @notice Packs the bitmap of enabled hooks with the hook address into a Hook value (bytes21).\n @dev The hook address is stored in the leftmost 20 bytes, and the bitmap is stored in the rightmost byte.\n @param hookAddress The address of the hook.\n @param encodedHooks The encoded hooks in a bitmap.\n @return A Hook type with packed hook address and bitmap."
773
+ },
774
+ "implemented": true,
775
+ "kind": "function",
776
+ "modifiers": [],
777
+ "name": "encode",
778
+ "nameLocation": "793:6:57",
779
+ "parameters": {
780
+ "id": 28257,
781
+ "nodeType": "ParameterList",
782
+ "parameters": [
783
+ {
784
+ "constant": false,
785
+ "id": 28254,
786
+ "mutability": "mutable",
787
+ "name": "hookAddress",
788
+ "nameLocation": "808:11:57",
789
+ "nodeType": "VariableDeclaration",
790
+ "scope": 28282,
791
+ "src": "800:19:57",
792
+ "stateVariable": false,
793
+ "storageLocation": "default",
794
+ "typeDescriptions": {
795
+ "typeIdentifier": "t_address",
796
+ "typeString": "address"
797
+ },
798
+ "typeName": {
799
+ "id": 28253,
800
+ "name": "address",
801
+ "nodeType": "ElementaryTypeName",
802
+ "src": "800:7:57",
803
+ "stateMutability": "nonpayable",
804
+ "typeDescriptions": {
805
+ "typeIdentifier": "t_address",
806
+ "typeString": "address"
807
+ }
808
+ },
809
+ "visibility": "internal"
810
+ },
811
+ {
812
+ "constant": false,
813
+ "id": 28256,
814
+ "mutability": "mutable",
815
+ "name": "encodedHooks",
816
+ "nameLocation": "827:12:57",
817
+ "nodeType": "VariableDeclaration",
818
+ "scope": 28282,
819
+ "src": "821:18:57",
820
+ "stateVariable": false,
821
+ "storageLocation": "default",
822
+ "typeDescriptions": {
823
+ "typeIdentifier": "t_uint8",
824
+ "typeString": "uint8"
825
+ },
826
+ "typeName": {
827
+ "id": 28255,
828
+ "name": "uint8",
829
+ "nodeType": "ElementaryTypeName",
830
+ "src": "821:5:57",
831
+ "typeDescriptions": {
832
+ "typeIdentifier": "t_uint8",
833
+ "typeString": "uint8"
834
+ }
835
+ },
836
+ "visibility": "internal"
837
+ }
838
+ ],
839
+ "src": "799:41:57"
840
+ },
841
+ "returnParameters": {
842
+ "id": 28261,
843
+ "nodeType": "ParameterList",
844
+ "parameters": [
845
+ {
846
+ "constant": false,
847
+ "id": 28260,
848
+ "mutability": "mutable",
849
+ "name": "",
850
+ "nameLocation": "-1:-1:-1",
851
+ "nodeType": "VariableDeclaration",
852
+ "scope": 28282,
853
+ "src": "864:4:57",
854
+ "stateVariable": false,
855
+ "storageLocation": "default",
856
+ "typeDescriptions": {
857
+ "typeIdentifier": "t_userDefinedValueType$_Hook_$28246",
858
+ "typeString": "Hook"
859
+ },
860
+ "typeName": {
861
+ "id": 28259,
862
+ "nodeType": "UserDefinedTypeName",
863
+ "pathNode": {
864
+ "id": 28258,
865
+ "name": "Hook",
866
+ "nameLocations": [
867
+ "864:4:57"
868
+ ],
869
+ "nodeType": "IdentifierPath",
870
+ "referencedDeclaration": 28246,
871
+ "src": "864:4:57"
872
+ },
873
+ "referencedDeclaration": 28246,
874
+ "src": "864:4:57",
875
+ "typeDescriptions": {
876
+ "typeIdentifier": "t_userDefinedValueType$_Hook_$28246",
877
+ "typeString": "Hook"
878
+ }
879
+ },
880
+ "visibility": "internal"
881
+ }
882
+ ],
883
+ "src": "863:6:57"
884
+ },
885
+ "scope": 28370,
886
+ "stateMutability": "pure",
887
+ "virtual": false,
888
+ "visibility": "internal"
889
+ },
890
+ {
891
+ "id": 28369,
892
+ "nodeType": "FunctionDefinition",
893
+ "src": "1405:1060:57",
894
+ "nodes": [],
895
+ "body": {
896
+ "id": 28368,
897
+ "nodeType": "Block",
898
+ "src": "1539:926:57",
899
+ "nodes": [],
900
+ "statements": [
901
+ {
902
+ "assignments": [
903
+ 28298
904
+ ],
905
+ "declarations": [
906
+ {
907
+ "constant": false,
908
+ "id": 28298,
909
+ "mutability": "mutable",
910
+ "name": "currentHooks",
911
+ "nameLocation": "1562:12:57",
912
+ "nodeType": "VariableDeclaration",
913
+ "scope": 28368,
914
+ "src": "1545:29:57",
915
+ "stateVariable": false,
916
+ "storageLocation": "memory",
917
+ "typeDescriptions": {
918
+ "typeIdentifier": "t_array$_t_bytes21_$dyn_memory_ptr",
919
+ "typeString": "bytes21[]"
920
+ },
921
+ "typeName": {
922
+ "baseType": {
923
+ "id": 28296,
924
+ "name": "bytes21",
925
+ "nodeType": "ElementaryTypeName",
926
+ "src": "1545:7:57",
927
+ "typeDescriptions": {
928
+ "typeIdentifier": "t_bytes21",
929
+ "typeString": "bytes21"
930
+ }
931
+ },
932
+ "id": 28297,
933
+ "nodeType": "ArrayTypeName",
934
+ "src": "1545:9:57",
935
+ "typeDescriptions": {
936
+ "typeIdentifier": "t_array$_t_bytes21_$dyn_storage_ptr",
937
+ "typeString": "bytes21[]"
938
+ }
939
+ },
940
+ "visibility": "internal"
941
+ }
942
+ ],
943
+ "id": 28304,
944
+ "initialValue": {
945
+ "arguments": [
946
+ {
947
+ "id": 28301,
948
+ "name": "hookTableId",
949
+ "nodeType": "Identifier",
950
+ "overloadedDeclarations": [],
951
+ "referencedDeclaration": 28286,
952
+ "src": "1588:11:57",
953
+ "typeDescriptions": {
954
+ "typeIdentifier": "t_userDefinedValueType$_ResourceId_$29139",
955
+ "typeString": "ResourceId"
956
+ }
957
+ },
958
+ {
959
+ "id": 28302,
960
+ "name": "tableWithHooks",
961
+ "nodeType": "Identifier",
962
+ "overloadedDeclarations": [],
963
+ "referencedDeclaration": 28289,
964
+ "src": "1601:14:57",
965
+ "typeDescriptions": {
966
+ "typeIdentifier": "t_userDefinedValueType$_ResourceId_$29139",
967
+ "typeString": "ResourceId"
968
+ }
969
+ }
970
+ ],
971
+ "expression": {
972
+ "argumentTypes": [
973
+ {
974
+ "typeIdentifier": "t_userDefinedValueType$_ResourceId_$29139",
975
+ "typeString": "ResourceId"
976
+ },
977
+ {
978
+ "typeIdentifier": "t_userDefinedValueType$_ResourceId_$29139",
979
+ "typeString": "ResourceId"
980
+ }
981
+ ],
982
+ "expression": {
983
+ "id": 28299,
984
+ "name": "Hooks",
985
+ "nodeType": "Identifier",
986
+ "overloadedDeclarations": [],
987
+ "referencedDeclaration": 70084,
988
+ "src": "1577:5:57",
989
+ "typeDescriptions": {
990
+ "typeIdentifier": "t_type$_t_contract$_Hooks_$70084_$",
991
+ "typeString": "type(library Hooks)"
992
+ }
993
+ },
994
+ "id": 28300,
995
+ "isConstant": false,
996
+ "isLValue": false,
997
+ "isPure": false,
998
+ "lValueRequested": false,
999
+ "memberLocation": "1583:4:57",
1000
+ "memberName": "_get",
1001
+ "nodeType": "MemberAccess",
1002
+ "referencedDeclaration": 67938,
1003
+ "src": "1577:10:57",
1004
+ "typeDescriptions": {
1005
+ "typeIdentifier": "t_function_internal_view$_t_userDefinedValueType$_ResourceId_$29139_$_t_userDefinedValueType$_ResourceId_$29139_$returns$_t_array$_t_bytes21_$dyn_memory_ptr_$",
1006
+ "typeString": "function (ResourceId,ResourceId) view returns (bytes21[] memory)"
1007
+ }
1008
+ },
1009
+ "id": 28303,
1010
+ "isConstant": false,
1011
+ "isLValue": false,
1012
+ "isPure": false,
1013
+ "kind": "functionCall",
1014
+ "lValueRequested": false,
1015
+ "nameLocations": [],
1016
+ "names": [],
1017
+ "nodeType": "FunctionCall",
1018
+ "src": "1577:39:57",
1019
+ "tryCall": false,
1020
+ "typeDescriptions": {
1021
+ "typeIdentifier": "t_array$_t_bytes21_$dyn_memory_ptr",
1022
+ "typeString": "bytes21[] memory"
1023
+ }
1024
+ },
1025
+ "nodeType": "VariableDeclarationStatement",
1026
+ "src": "1545:71:57"
1027
+ },
1028
+ {
1029
+ "assignments": [
1030
+ 28309
1031
+ ],
1032
+ "declarations": [
1033
+ {
1034
+ "constant": false,
1035
+ "id": 28309,
1036
+ "mutability": "mutable",
1037
+ "name": "newHooks",
1038
+ "nameLocation": "1751:8:57",
1039
+ "nodeType": "VariableDeclaration",
1040
+ "scope": 28368,
1041
+ "src": "1734:25:57",
1042
+ "stateVariable": false,
1043
+ "storageLocation": "memory",
1044
+ "typeDescriptions": {
1045
+ "typeIdentifier": "t_array$_t_bytes21_$dyn_memory_ptr",
1046
+ "typeString": "bytes21[]"
1047
+ },
1048
+ "typeName": {
1049
+ "baseType": {
1050
+ "id": 28307,
1051
+ "name": "bytes21",
1052
+ "nodeType": "ElementaryTypeName",
1053
+ "src": "1734:7:57",
1054
+ "typeDescriptions": {
1055
+ "typeIdentifier": "t_bytes21",
1056
+ "typeString": "bytes21"
1057
+ }
1058
+ },
1059
+ "id": 28308,
1060
+ "nodeType": "ArrayTypeName",
1061
+ "src": "1734:9:57",
1062
+ "typeDescriptions": {
1063
+ "typeIdentifier": "t_array$_t_bytes21_$dyn_storage_ptr",
1064
+ "typeString": "bytes21[]"
1065
+ }
1066
+ },
1067
+ "visibility": "internal"
1068
+ }
1069
+ ],
1070
+ "id": 28316,
1071
+ "initialValue": {
1072
+ "arguments": [
1073
+ {
1074
+ "expression": {
1075
+ "id": 28313,
1076
+ "name": "currentHooks",
1077
+ "nodeType": "Identifier",
1078
+ "overloadedDeclarations": [],
1079
+ "referencedDeclaration": 28298,
1080
+ "src": "1776:12:57",
1081
+ "typeDescriptions": {
1082
+ "typeIdentifier": "t_array$_t_bytes21_$dyn_memory_ptr",
1083
+ "typeString": "bytes21[] memory"
1084
+ }
1085
+ },
1086
+ "id": 28314,
1087
+ "isConstant": false,
1088
+ "isLValue": false,
1089
+ "isPure": false,
1090
+ "lValueRequested": false,
1091
+ "memberLocation": "1789:6:57",
1092
+ "memberName": "length",
1093
+ "nodeType": "MemberAccess",
1094
+ "src": "1776:19:57",
1095
+ "typeDescriptions": {
1096
+ "typeIdentifier": "t_uint256",
1097
+ "typeString": "uint256"
1098
+ }
1099
+ }
1100
+ ],
1101
+ "expression": {
1102
+ "argumentTypes": [
1103
+ {
1104
+ "typeIdentifier": "t_uint256",
1105
+ "typeString": "uint256"
1106
+ }
1107
+ ],
1108
+ "id": 28312,
1109
+ "isConstant": false,
1110
+ "isLValue": false,
1111
+ "isPure": true,
1112
+ "lValueRequested": false,
1113
+ "nodeType": "NewExpression",
1114
+ "src": "1762:13:57",
1115
+ "typeDescriptions": {
1116
+ "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes21_$dyn_memory_ptr_$",
1117
+ "typeString": "function (uint256) pure returns (bytes21[] memory)"
1118
+ },
1119
+ "typeName": {
1120
+ "baseType": {
1121
+ "id": 28310,
1122
+ "name": "bytes21",
1123
+ "nodeType": "ElementaryTypeName",
1124
+ "src": "1766:7:57",
1125
+ "typeDescriptions": {
1126
+ "typeIdentifier": "t_bytes21",
1127
+ "typeString": "bytes21"
1128
+ }
1129
+ },
1130
+ "id": 28311,
1131
+ "nodeType": "ArrayTypeName",
1132
+ "src": "1766:9:57",
1133
+ "typeDescriptions": {
1134
+ "typeIdentifier": "t_array$_t_bytes21_$dyn_storage_ptr",
1135
+ "typeString": "bytes21[]"
1136
+ }
1137
+ }
1138
+ },
1139
+ "id": 28315,
1140
+ "isConstant": false,
1141
+ "isLValue": false,
1142
+ "isPure": false,
1143
+ "kind": "functionCall",
1144
+ "lValueRequested": false,
1145
+ "nameLocations": [],
1146
+ "names": [],
1147
+ "nodeType": "FunctionCall",
1148
+ "src": "1762:34:57",
1149
+ "tryCall": false,
1150
+ "typeDescriptions": {
1151
+ "typeIdentifier": "t_array$_t_bytes21_$dyn_memory_ptr",
1152
+ "typeString": "bytes21[] memory"
1153
+ }
1154
+ },
1155
+ "nodeType": "VariableDeclarationStatement",
1156
+ "src": "1734:62:57"
1157
+ },
1158
+ {
1159
+ "assignments": [
1160
+ 28318
1161
+ ],
1162
+ "declarations": [
1163
+ {
1164
+ "constant": false,
1165
+ "id": 28318,
1166
+ "mutability": "mutable",
1167
+ "name": "newHooksIndex",
1168
+ "nameLocation": "1852:13:57",
1169
+ "nodeType": "VariableDeclaration",
1170
+ "scope": 28368,
1171
+ "src": "1844:21:57",
1172
+ "stateVariable": false,
1173
+ "storageLocation": "default",
1174
+ "typeDescriptions": {
1175
+ "typeIdentifier": "t_uint256",
1176
+ "typeString": "uint256"
1177
+ },
1178
+ "typeName": {
1179
+ "id": 28317,
1180
+ "name": "uint256",
1181
+ "nodeType": "ElementaryTypeName",
1182
+ "src": "1844:7:57",
1183
+ "typeDescriptions": {
1184
+ "typeIdentifier": "t_uint256",
1185
+ "typeString": "uint256"
1186
+ }
1187
+ },
1188
+ "visibility": "internal"
1189
+ }
1190
+ ],
1191
+ "id": 28319,
1192
+ "nodeType": "VariableDeclarationStatement",
1193
+ "src": "1844:21:57"
1194
+ },
1195
+ {
1196
+ "id": 28358,
1197
+ "nodeType": "UncheckedBlock",
1198
+ "src": "1871:336:57",
1199
+ "statements": [
1200
+ {
1201
+ "body": {
1202
+ "id": 28356,
1203
+ "nodeType": "Block",
1204
+ "src": "1983:218:57",
1205
+ "statements": [
1206
+ {
1207
+ "condition": {
1208
+ "commonType": {
1209
+ "typeIdentifier": "t_address",
1210
+ "typeString": "address"
1211
+ },
1212
+ "id": 28342,
1213
+ "isConstant": false,
1214
+ "isLValue": false,
1215
+ "isPure": false,
1216
+ "lValueRequested": false,
1217
+ "leftExpression": {
1218
+ "arguments": [],
1219
+ "expression": {
1220
+ "argumentTypes": [],
1221
+ "expression": {
1222
+ "arguments": [
1223
+ {
1224
+ "baseExpression": {
1225
+ "id": 28332,
1226
+ "name": "currentHooks",
1227
+ "nodeType": "Identifier",
1228
+ "overloadedDeclarations": [],
1229
+ "referencedDeclaration": 28298,
1230
+ "src": "2007:12:57",
1231
+ "typeDescriptions": {
1232
+ "typeIdentifier": "t_array$_t_bytes21_$dyn_memory_ptr",
1233
+ "typeString": "bytes21[] memory"
1234
+ }
1235
+ },
1236
+ "id": 28334,
1237
+ "indexExpression": {
1238
+ "id": 28333,
1239
+ "name": "currentHooksIndex",
1240
+ "nodeType": "Identifier",
1241
+ "overloadedDeclarations": [],
1242
+ "referencedDeclaration": 28321,
1243
+ "src": "2020:17:57",
1244
+ "typeDescriptions": {
1245
+ "typeIdentifier": "t_uint256",
1246
+ "typeString": "uint256"
1247
+ }
1248
+ },
1249
+ "isConstant": false,
1250
+ "isLValue": true,
1251
+ "isPure": false,
1252
+ "lValueRequested": false,
1253
+ "nodeType": "IndexAccess",
1254
+ "src": "2007:31:57",
1255
+ "typeDescriptions": {
1256
+ "typeIdentifier": "t_bytes21",
1257
+ "typeString": "bytes21"
1258
+ }
1259
+ }
1260
+ ],
1261
+ "expression": {
1262
+ "argumentTypes": [
1263
+ {
1264
+ "typeIdentifier": "t_bytes21",
1265
+ "typeString": "bytes21"
1266
+ }
1267
+ ],
1268
+ "expression": {
1269
+ "id": 28330,
1270
+ "name": "Hook",
1271
+ "nodeType": "Identifier",
1272
+ "overloadedDeclarations": [],
1273
+ "referencedDeclaration": 28246,
1274
+ "src": "1997:4:57",
1275
+ "typeDescriptions": {
1276
+ "typeIdentifier": "t_type$_t_userDefinedValueType$_Hook_$28246_$",
1277
+ "typeString": "type(Hook)"
1278
+ }
1279
+ },
1280
+ "id": 28331,
1281
+ "isConstant": false,
1282
+ "isLValue": false,
1283
+ "isPure": true,
1284
+ "lValueRequested": false,
1285
+ "memberLocation": "2002:4:57",
1286
+ "memberName": "wrap",
1287
+ "nodeType": "MemberAccess",
1288
+ "src": "1997:9:57",
1289
+ "typeDescriptions": {
1290
+ "typeIdentifier": "t_function_wrap_pure$_t_bytes21_$returns$_t_userDefinedValueType$_Hook_$28246_$",
1291
+ "typeString": "function (bytes21) pure returns (Hook)"
1292
+ }
1293
+ },
1294
+ "id": 28335,
1295
+ "isConstant": false,
1296
+ "isLValue": false,
1297
+ "isPure": false,
1298
+ "kind": "functionCall",
1299
+ "lValueRequested": false,
1300
+ "nameLocations": [],
1301
+ "names": [],
1302
+ "nodeType": "FunctionCall",
1303
+ "src": "1997:42:57",
1304
+ "tryCall": false,
1305
+ "typeDescriptions": {
1306
+ "typeIdentifier": "t_userDefinedValueType$_Hook_$28246",
1307
+ "typeString": "Hook"
1308
+ }
1309
+ },
1310
+ "id": 28336,
1311
+ "isConstant": false,
1312
+ "isLValue": false,
1313
+ "isPure": false,
1314
+ "lValueRequested": false,
1315
+ "memberLocation": "2040:10:57",
1316
+ "memberName": "getAddress",
1317
+ "nodeType": "MemberAccess",
1318
+ "referencedDeclaration": 28413,
1319
+ "src": "1997:53:57",
1320
+ "typeDescriptions": {
1321
+ "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Hook_$28246_$returns$_t_address_$attached_to$_t_userDefinedValueType$_Hook_$28246_$",
1322
+ "typeString": "function (Hook) pure returns (address)"
1323
+ }
1324
+ },
1325
+ "id": 28337,
1326
+ "isConstant": false,
1327
+ "isLValue": false,
1328
+ "isPure": false,
1329
+ "kind": "functionCall",
1330
+ "lValueRequested": false,
1331
+ "nameLocations": [],
1332
+ "names": [],
1333
+ "nodeType": "FunctionCall",
1334
+ "src": "1997:55:57",
1335
+ "tryCall": false,
1336
+ "typeDescriptions": {
1337
+ "typeIdentifier": "t_address",
1338
+ "typeString": "address"
1339
+ }
1340
+ },
1341
+ "nodeType": "BinaryOperation",
1342
+ "operator": "!=",
1343
+ "rightExpression": {
1344
+ "arguments": [
1345
+ {
1346
+ "id": 28340,
1347
+ "name": "hookAddressToRemove",
1348
+ "nodeType": "Identifier",
1349
+ "overloadedDeclarations": [],
1350
+ "referencedDeclaration": 28291,
1351
+ "src": "2064:19:57",
1352
+ "typeDescriptions": {
1353
+ "typeIdentifier": "t_address",
1354
+ "typeString": "address"
1355
+ }
1356
+ }
1357
+ ],
1358
+ "expression": {
1359
+ "argumentTypes": [
1360
+ {
1361
+ "typeIdentifier": "t_address",
1362
+ "typeString": "address"
1363
+ }
1364
+ ],
1365
+ "id": 28339,
1366
+ "isConstant": false,
1367
+ "isLValue": false,
1368
+ "isPure": true,
1369
+ "lValueRequested": false,
1370
+ "nodeType": "ElementaryTypeNameExpression",
1371
+ "src": "2056:7:57",
1372
+ "typeDescriptions": {
1373
+ "typeIdentifier": "t_type$_t_address_$",
1374
+ "typeString": "type(address)"
1375
+ },
1376
+ "typeName": {
1377
+ "id": 28338,
1378
+ "name": "address",
1379
+ "nodeType": "ElementaryTypeName",
1380
+ "src": "2056:7:57",
1381
+ "typeDescriptions": {}
1382
+ }
1383
+ },
1384
+ "id": 28341,
1385
+ "isConstant": false,
1386
+ "isLValue": false,
1387
+ "isPure": false,
1388
+ "kind": "typeConversion",
1389
+ "lValueRequested": false,
1390
+ "nameLocations": [],
1391
+ "names": [],
1392
+ "nodeType": "FunctionCall",
1393
+ "src": "2056:28:57",
1394
+ "tryCall": false,
1395
+ "typeDescriptions": {
1396
+ "typeIdentifier": "t_address",
1397
+ "typeString": "address"
1398
+ }
1399
+ },
1400
+ "src": "1997:87:57",
1401
+ "typeDescriptions": {
1402
+ "typeIdentifier": "t_bool",
1403
+ "typeString": "bool"
1404
+ }
1405
+ },
1406
+ "id": 28355,
1407
+ "nodeType": "IfStatement",
1408
+ "src": "1993:200:57",
1409
+ "trueBody": {
1410
+ "id": 28354,
1411
+ "nodeType": "Block",
1412
+ "src": "2086:107:57",
1413
+ "statements": [
1414
+ {
1415
+ "expression": {
1416
+ "id": 28349,
1417
+ "isConstant": false,
1418
+ "isLValue": false,
1419
+ "isPure": false,
1420
+ "lValueRequested": false,
1421
+ "leftHandSide": {
1422
+ "baseExpression": {
1423
+ "id": 28343,
1424
+ "name": "newHooks",
1425
+ "nodeType": "Identifier",
1426
+ "overloadedDeclarations": [],
1427
+ "referencedDeclaration": 28309,
1428
+ "src": "2098:8:57",
1429
+ "typeDescriptions": {
1430
+ "typeIdentifier": "t_array$_t_bytes21_$dyn_memory_ptr",
1431
+ "typeString": "bytes21[] memory"
1432
+ }
1433
+ },
1434
+ "id": 28345,
1435
+ "indexExpression": {
1436
+ "id": 28344,
1437
+ "name": "newHooksIndex",
1438
+ "nodeType": "Identifier",
1439
+ "overloadedDeclarations": [],
1440
+ "referencedDeclaration": 28318,
1441
+ "src": "2107:13:57",
1442
+ "typeDescriptions": {
1443
+ "typeIdentifier": "t_uint256",
1444
+ "typeString": "uint256"
1445
+ }
1446
+ },
1447
+ "isConstant": false,
1448
+ "isLValue": true,
1449
+ "isPure": false,
1450
+ "lValueRequested": true,
1451
+ "nodeType": "IndexAccess",
1452
+ "src": "2098:23:57",
1453
+ "typeDescriptions": {
1454
+ "typeIdentifier": "t_bytes21",
1455
+ "typeString": "bytes21"
1456
+ }
1457
+ },
1458
+ "nodeType": "Assignment",
1459
+ "operator": "=",
1460
+ "rightHandSide": {
1461
+ "baseExpression": {
1462
+ "id": 28346,
1463
+ "name": "currentHooks",
1464
+ "nodeType": "Identifier",
1465
+ "overloadedDeclarations": [],
1466
+ "referencedDeclaration": 28298,
1467
+ "src": "2124:12:57",
1468
+ "typeDescriptions": {
1469
+ "typeIdentifier": "t_array$_t_bytes21_$dyn_memory_ptr",
1470
+ "typeString": "bytes21[] memory"
1471
+ }
1472
+ },
1473
+ "id": 28348,
1474
+ "indexExpression": {
1475
+ "id": 28347,
1476
+ "name": "currentHooksIndex",
1477
+ "nodeType": "Identifier",
1478
+ "overloadedDeclarations": [],
1479
+ "referencedDeclaration": 28321,
1480
+ "src": "2137:17:57",
1481
+ "typeDescriptions": {
1482
+ "typeIdentifier": "t_uint256",
1483
+ "typeString": "uint256"
1484
+ }
1485
+ },
1486
+ "isConstant": false,
1487
+ "isLValue": true,
1488
+ "isPure": false,
1489
+ "lValueRequested": false,
1490
+ "nodeType": "IndexAccess",
1491
+ "src": "2124:31:57",
1492
+ "typeDescriptions": {
1493
+ "typeIdentifier": "t_bytes21",
1494
+ "typeString": "bytes21"
1495
+ }
1496
+ },
1497
+ "src": "2098:57:57",
1498
+ "typeDescriptions": {
1499
+ "typeIdentifier": "t_bytes21",
1500
+ "typeString": "bytes21"
1501
+ }
1502
+ },
1503
+ "id": 28350,
1504
+ "nodeType": "ExpressionStatement",
1505
+ "src": "2098:57:57"
1506
+ },
1507
+ {
1508
+ "expression": {
1509
+ "id": 28352,
1510
+ "isConstant": false,
1511
+ "isLValue": false,
1512
+ "isPure": false,
1513
+ "lValueRequested": false,
1514
+ "nodeType": "UnaryOperation",
1515
+ "operator": "++",
1516
+ "prefix": false,
1517
+ "src": "2167:15:57",
1518
+ "subExpression": {
1519
+ "id": 28351,
1520
+ "name": "newHooksIndex",
1521
+ "nodeType": "Identifier",
1522
+ "overloadedDeclarations": [],
1523
+ "referencedDeclaration": 28318,
1524
+ "src": "2167:13:57",
1525
+ "typeDescriptions": {
1526
+ "typeIdentifier": "t_uint256",
1527
+ "typeString": "uint256"
1528
+ }
1529
+ },
1530
+ "typeDescriptions": {
1531
+ "typeIdentifier": "t_uint256",
1532
+ "typeString": "uint256"
1533
+ }
1534
+ },
1535
+ "id": 28353,
1536
+ "nodeType": "ExpressionStatement",
1537
+ "src": "2167:15:57"
1538
+ }
1539
+ ]
1540
+ }
1541
+ }
1542
+ ]
1543
+ },
1544
+ "condition": {
1545
+ "commonType": {
1546
+ "typeIdentifier": "t_uint256",
1547
+ "typeString": "uint256"
1548
+ },
1549
+ "id": 28326,
1550
+ "isConstant": false,
1551
+ "isLValue": false,
1552
+ "isPure": false,
1553
+ "lValueRequested": false,
1554
+ "leftExpression": {
1555
+ "id": 28323,
1556
+ "name": "currentHooksIndex",
1557
+ "nodeType": "Identifier",
1558
+ "overloadedDeclarations": [],
1559
+ "referencedDeclaration": 28321,
1560
+ "src": "1921:17:57",
1561
+ "typeDescriptions": {
1562
+ "typeIdentifier": "t_uint256",
1563
+ "typeString": "uint256"
1564
+ }
1565
+ },
1566
+ "nodeType": "BinaryOperation",
1567
+ "operator": "<",
1568
+ "rightExpression": {
1569
+ "expression": {
1570
+ "id": 28324,
1571
+ "name": "currentHooks",
1572
+ "nodeType": "Identifier",
1573
+ "overloadedDeclarations": [],
1574
+ "referencedDeclaration": 28298,
1575
+ "src": "1941:12:57",
1576
+ "typeDescriptions": {
1577
+ "typeIdentifier": "t_array$_t_bytes21_$dyn_memory_ptr",
1578
+ "typeString": "bytes21[] memory"
1579
+ }
1580
+ },
1581
+ "id": 28325,
1582
+ "isConstant": false,
1583
+ "isLValue": false,
1584
+ "isPure": false,
1585
+ "lValueRequested": false,
1586
+ "memberLocation": "1954:6:57",
1587
+ "memberName": "length",
1588
+ "nodeType": "MemberAccess",
1589
+ "src": "1941:19:57",
1590
+ "typeDescriptions": {
1591
+ "typeIdentifier": "t_uint256",
1592
+ "typeString": "uint256"
1593
+ }
1594
+ },
1595
+ "src": "1921:39:57",
1596
+ "typeDescriptions": {
1597
+ "typeIdentifier": "t_bool",
1598
+ "typeString": "bool"
1599
+ }
1600
+ },
1601
+ "id": 28357,
1602
+ "initializationExpression": {
1603
+ "assignments": [
1604
+ 28321
1605
+ ],
1606
+ "declarations": [
1607
+ {
1608
+ "constant": false,
1609
+ "id": 28321,
1610
+ "mutability": "mutable",
1611
+ "name": "currentHooksIndex",
1612
+ "nameLocation": "1902:17:57",
1613
+ "nodeType": "VariableDeclaration",
1614
+ "scope": 28357,
1615
+ "src": "1894:25:57",
1616
+ "stateVariable": false,
1617
+ "storageLocation": "default",
1618
+ "typeDescriptions": {
1619
+ "typeIdentifier": "t_uint256",
1620
+ "typeString": "uint256"
1621
+ },
1622
+ "typeName": {
1623
+ "id": 28320,
1624
+ "name": "uint256",
1625
+ "nodeType": "ElementaryTypeName",
1626
+ "src": "1894:7:57",
1627
+ "typeDescriptions": {
1628
+ "typeIdentifier": "t_uint256",
1629
+ "typeString": "uint256"
1630
+ }
1631
+ },
1632
+ "visibility": "internal"
1633
+ }
1634
+ ],
1635
+ "id": 28322,
1636
+ "nodeType": "VariableDeclarationStatement",
1637
+ "src": "1894:25:57"
1638
+ },
1639
+ "loopExpression": {
1640
+ "expression": {
1641
+ "id": 28328,
1642
+ "isConstant": false,
1643
+ "isLValue": false,
1644
+ "isPure": false,
1645
+ "lValueRequested": false,
1646
+ "nodeType": "UnaryOperation",
1647
+ "operator": "++",
1648
+ "prefix": false,
1649
+ "src": "1962:19:57",
1650
+ "subExpression": {
1651
+ "id": 28327,
1652
+ "name": "currentHooksIndex",
1653
+ "nodeType": "Identifier",
1654
+ "overloadedDeclarations": [],
1655
+ "referencedDeclaration": 28321,
1656
+ "src": "1962:17:57",
1657
+ "typeDescriptions": {
1658
+ "typeIdentifier": "t_uint256",
1659
+ "typeString": "uint256"
1660
+ }
1661
+ },
1662
+ "typeDescriptions": {
1663
+ "typeIdentifier": "t_uint256",
1664
+ "typeString": "uint256"
1665
+ }
1666
+ },
1667
+ "id": 28329,
1668
+ "nodeType": "ExpressionStatement",
1669
+ "src": "1962:19:57"
1670
+ },
1671
+ "nodeType": "ForStatement",
1672
+ "src": "1889:312:57"
1673
+ }
1674
+ ]
1675
+ },
1676
+ {
1677
+ "AST": {
1678
+ "nativeSrc": "2329:45:57",
1679
+ "nodeType": "YulBlock",
1680
+ "src": "2329:45:57",
1681
+ "statements": [
1682
+ {
1683
+ "expression": {
1684
+ "arguments": [
1685
+ {
1686
+ "name": "newHooks",
1687
+ "nativeSrc": "2344:8:57",
1688
+ "nodeType": "YulIdentifier",
1689
+ "src": "2344:8:57"
1690
+ },
1691
+ {
1692
+ "name": "newHooksIndex",
1693
+ "nativeSrc": "2354:13:57",
1694
+ "nodeType": "YulIdentifier",
1695
+ "src": "2354:13:57"
1696
+ }
1697
+ ],
1698
+ "functionName": {
1699
+ "name": "mstore",
1700
+ "nativeSrc": "2337:6:57",
1701
+ "nodeType": "YulIdentifier",
1702
+ "src": "2337:6:57"
1703
+ },
1704
+ "nativeSrc": "2337:31:57",
1705
+ "nodeType": "YulFunctionCall",
1706
+ "src": "2337:31:57"
1707
+ },
1708
+ "nativeSrc": "2337:31:57",
1709
+ "nodeType": "YulExpressionStatement",
1710
+ "src": "2337:31:57"
1711
+ }
1712
+ ]
1713
+ },
1714
+ "evmVersion": "paris",
1715
+ "externalReferences": [
1716
+ {
1717
+ "declaration": 28309,
1718
+ "isOffset": false,
1719
+ "isSlot": false,
1720
+ "src": "2344:8:57",
1721
+ "valueSize": 1
1722
+ },
1723
+ {
1724
+ "declaration": 28318,
1725
+ "isOffset": false,
1726
+ "isSlot": false,
1727
+ "src": "2354:13:57",
1728
+ "valueSize": 1
1729
+ }
1730
+ ],
1731
+ "id": 28359,
1732
+ "nodeType": "InlineAssembly",
1733
+ "src": "2320:54:57"
1734
+ },
1735
+ {
1736
+ "expression": {
1737
+ "arguments": [
1738
+ {
1739
+ "id": 28363,
1740
+ "name": "hookTableId",
1741
+ "nodeType": "Identifier",
1742
+ "overloadedDeclarations": [],
1743
+ "referencedDeclaration": 28286,
1744
+ "src": "2422:11:57",
1745
+ "typeDescriptions": {
1746
+ "typeIdentifier": "t_userDefinedValueType$_ResourceId_$29139",
1747
+ "typeString": "ResourceId"
1748
+ }
1749
+ },
1750
+ {
1751
+ "id": 28364,
1752
+ "name": "tableWithHooks",
1753
+ "nodeType": "Identifier",
1754
+ "overloadedDeclarations": [],
1755
+ "referencedDeclaration": 28289,
1756
+ "src": "2435:14:57",
1757
+ "typeDescriptions": {
1758
+ "typeIdentifier": "t_userDefinedValueType$_ResourceId_$29139",
1759
+ "typeString": "ResourceId"
1760
+ }
1761
+ },
1762
+ {
1763
+ "id": 28365,
1764
+ "name": "newHooks",
1765
+ "nodeType": "Identifier",
1766
+ "overloadedDeclarations": [],
1767
+ "referencedDeclaration": 28309,
1768
+ "src": "2451:8:57",
1769
+ "typeDescriptions": {
1770
+ "typeIdentifier": "t_array$_t_bytes21_$dyn_memory_ptr",
1771
+ "typeString": "bytes21[] memory"
1772
+ }
1773
+ }
1774
+ ],
1775
+ "expression": {
1776
+ "argumentTypes": [
1777
+ {
1778
+ "typeIdentifier": "t_userDefinedValueType$_ResourceId_$29139",
1779
+ "typeString": "ResourceId"
1780
+ },
1781
+ {
1782
+ "typeIdentifier": "t_userDefinedValueType$_ResourceId_$29139",
1783
+ "typeString": "ResourceId"
1784
+ },
1785
+ {
1786
+ "typeIdentifier": "t_array$_t_bytes21_$dyn_memory_ptr",
1787
+ "typeString": "bytes21[] memory"
1788
+ }
1789
+ ],
1790
+ "expression": {
1791
+ "id": 28360,
1792
+ "name": "Hooks",
1793
+ "nodeType": "Identifier",
1794
+ "overloadedDeclarations": [],
1795
+ "referencedDeclaration": 70084,
1796
+ "src": "2411:5:57",
1797
+ "typeDescriptions": {
1798
+ "typeIdentifier": "t_type$_t_contract$_Hooks_$70084_$",
1799
+ "typeString": "type(library Hooks)"
1800
+ }
1801
+ },
1802
+ "id": 28362,
1803
+ "isConstant": false,
1804
+ "isLValue": false,
1805
+ "isPure": false,
1806
+ "lValueRequested": false,
1807
+ "memberLocation": "2417:4:57",
1808
+ "memberName": "_set",
1809
+ "nodeType": "MemberAccess",
1810
+ "referencedDeclaration": 68233,
1811
+ "src": "2411:10:57",
1812
+ "typeDescriptions": {
1813
+ "typeIdentifier": "t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$29139_$_t_userDefinedValueType$_ResourceId_$29139_$_t_array$_t_bytes21_$dyn_memory_ptr_$returns$__$",
1814
+ "typeString": "function (ResourceId,ResourceId,bytes21[] memory)"
1815
+ }
1816
+ },
1817
+ "id": 28366,
1818
+ "isConstant": false,
1819
+ "isLValue": false,
1820
+ "isPure": false,
1821
+ "kind": "functionCall",
1822
+ "lValueRequested": false,
1823
+ "nameLocations": [],
1824
+ "names": [],
1825
+ "nodeType": "FunctionCall",
1826
+ "src": "2411:49:57",
1827
+ "tryCall": false,
1828
+ "typeDescriptions": {
1829
+ "typeIdentifier": "t_tuple$__$",
1830
+ "typeString": "tuple()"
1831
+ }
1832
+ },
1833
+ "id": 28367,
1834
+ "nodeType": "ExpressionStatement",
1835
+ "src": "2411:49:57"
1836
+ }
1837
+ ]
1838
+ },
1839
+ "documentation": {
1840
+ "id": 28283,
1841
+ "nodeType": "StructuredDocumentation",
1842
+ "src": "1051:351:57",
1843
+ "text": " @notice Filter a hook from the hook list by its address.\n @dev This function writes the updated hook list to the table in place.\n @param hookTableId The resource ID of the hook table.\n @param tableWithHooks The resource ID of the table with hooks to filter.\n @param hookAddressToRemove The address of the hook to remove."
1844
+ },
1845
+ "implemented": true,
1846
+ "kind": "function",
1847
+ "modifiers": [],
1848
+ "name": "filterListByAddress",
1849
+ "nameLocation": "1414:19:57",
1850
+ "parameters": {
1851
+ "id": 28292,
1852
+ "nodeType": "ParameterList",
1853
+ "parameters": [
1854
+ {
1855
+ "constant": false,
1856
+ "id": 28286,
1857
+ "mutability": "mutable",
1858
+ "name": "hookTableId",
1859
+ "nameLocation": "1450:11:57",
1860
+ "nodeType": "VariableDeclaration",
1861
+ "scope": 28369,
1862
+ "src": "1439:22:57",
1863
+ "stateVariable": false,
1864
+ "storageLocation": "default",
1865
+ "typeDescriptions": {
1866
+ "typeIdentifier": "t_userDefinedValueType$_ResourceId_$29139",
1867
+ "typeString": "ResourceId"
1868
+ },
1869
+ "typeName": {
1870
+ "id": 28285,
1871
+ "nodeType": "UserDefinedTypeName",
1872
+ "pathNode": {
1873
+ "id": 28284,
1874
+ "name": "ResourceId",
1875
+ "nameLocations": [
1876
+ "1439:10:57"
1877
+ ],
1878
+ "nodeType": "IdentifierPath",
1879
+ "referencedDeclaration": 29139,
1880
+ "src": "1439:10:57"
1881
+ },
1882
+ "referencedDeclaration": 29139,
1883
+ "src": "1439:10:57",
1884
+ "typeDescriptions": {
1885
+ "typeIdentifier": "t_userDefinedValueType$_ResourceId_$29139",
1886
+ "typeString": "ResourceId"
1887
+ }
1888
+ },
1889
+ "visibility": "internal"
1890
+ },
1891
+ {
1892
+ "constant": false,
1893
+ "id": 28289,
1894
+ "mutability": "mutable",
1895
+ "name": "tableWithHooks",
1896
+ "nameLocation": "1478:14:57",
1897
+ "nodeType": "VariableDeclaration",
1898
+ "scope": 28369,
1899
+ "src": "1467:25:57",
1900
+ "stateVariable": false,
1901
+ "storageLocation": "default",
1902
+ "typeDescriptions": {
1903
+ "typeIdentifier": "t_userDefinedValueType$_ResourceId_$29139",
1904
+ "typeString": "ResourceId"
1905
+ },
1906
+ "typeName": {
1907
+ "id": 28288,
1908
+ "nodeType": "UserDefinedTypeName",
1909
+ "pathNode": {
1910
+ "id": 28287,
1911
+ "name": "ResourceId",
1912
+ "nameLocations": [
1913
+ "1467:10:57"
1914
+ ],
1915
+ "nodeType": "IdentifierPath",
1916
+ "referencedDeclaration": 29139,
1917
+ "src": "1467:10:57"
1918
+ },
1919
+ "referencedDeclaration": 29139,
1920
+ "src": "1467:10:57",
1921
+ "typeDescriptions": {
1922
+ "typeIdentifier": "t_userDefinedValueType$_ResourceId_$29139",
1923
+ "typeString": "ResourceId"
1924
+ }
1925
+ },
1926
+ "visibility": "internal"
1927
+ },
1928
+ {
1929
+ "constant": false,
1930
+ "id": 28291,
1931
+ "mutability": "mutable",
1932
+ "name": "hookAddressToRemove",
1933
+ "nameLocation": "1506:19:57",
1934
+ "nodeType": "VariableDeclaration",
1935
+ "scope": 28369,
1936
+ "src": "1498:27:57",
1937
+ "stateVariable": false,
1938
+ "storageLocation": "default",
1939
+ "typeDescriptions": {
1940
+ "typeIdentifier": "t_address",
1941
+ "typeString": "address"
1942
+ },
1943
+ "typeName": {
1944
+ "id": 28290,
1945
+ "name": "address",
1946
+ "nodeType": "ElementaryTypeName",
1947
+ "src": "1498:7:57",
1948
+ "stateMutability": "nonpayable",
1949
+ "typeDescriptions": {
1950
+ "typeIdentifier": "t_address",
1951
+ "typeString": "address"
1952
+ }
1953
+ },
1954
+ "visibility": "internal"
1955
+ }
1956
+ ],
1957
+ "src": "1433:96:57"
1958
+ },
1959
+ "returnParameters": {
1960
+ "id": 28293,
1961
+ "nodeType": "ParameterList",
1962
+ "parameters": [],
1963
+ "src": "1539:0:57"
1964
+ },
1965
+ "scope": 28370,
1966
+ "stateMutability": "nonpayable",
1967
+ "virtual": false,
1968
+ "visibility": "internal"
1969
+ }
1970
+ ],
1971
+ "abstract": false,
1972
+ "baseContracts": [],
1973
+ "canonicalName": "HookLib",
1974
+ "contractDependencies": [],
1975
+ "contractKind": "library",
1976
+ "documentation": {
1977
+ "id": 28251,
1978
+ "nodeType": "StructuredDocumentation",
1979
+ "src": "271:104:57",
1980
+ "text": " @title HookLib\n @dev Library for encoding hooks and filtering hooks from a list by address."
1981
+ },
1982
+ "fullyImplemented": true,
1983
+ "linearizedBaseContracts": [
1984
+ 28370
1985
+ ],
1986
+ "name": "HookLib",
1987
+ "nameLocation": "384:7:57",
1988
+ "scope": 28436,
1989
+ "usedErrors": [],
1990
+ "usedEvents": []
1991
+ },
1992
+ {
1993
+ "id": 28435,
1994
+ "nodeType": "ContractDefinition",
1995
+ "src": "2554:1270:57",
1996
+ "nodes": [
1997
+ {
1998
+ "id": 28392,
1999
+ "nodeType": "FunctionDefinition",
2000
+ "src": "2891:136:57",
2001
+ "nodes": [],
2002
+ "body": {
2003
+ "id": 28391,
2004
+ "nodeType": "Block",
2005
+ "src": "2967:60:57",
2006
+ "nodes": [],
2007
+ "statements": [
2008
+ {
2009
+ "expression": {
2010
+ "commonType": {
2011
+ "typeIdentifier": "t_uint8",
2012
+ "typeString": "uint8"
2013
+ },
2014
+ "id": 28389,
2015
+ "isConstant": false,
2016
+ "isLValue": false,
2017
+ "isPure": false,
2018
+ "lValueRequested": false,
2019
+ "leftExpression": {
2020
+ "components": [
2021
+ {
2022
+ "commonType": {
2023
+ "typeIdentifier": "t_uint8",
2024
+ "typeString": "uint8"
2025
+ },
2026
+ "id": 28386,
2027
+ "isConstant": false,
2028
+ "isLValue": false,
2029
+ "isPure": false,
2030
+ "lValueRequested": false,
2031
+ "leftExpression": {
2032
+ "arguments": [
2033
+ {
2034
+ "id": 28383,
2035
+ "name": "self",
2036
+ "nodeType": "Identifier",
2037
+ "overloadedDeclarations": [],
2038
+ "referencedDeclaration": 28375,
2039
+ "src": "2991:4:57",
2040
+ "typeDescriptions": {
2041
+ "typeIdentifier": "t_userDefinedValueType$_Hook_$28246",
2042
+ "typeString": "Hook"
2043
+ }
2044
+ }
2045
+ ],
2046
+ "expression": {
2047
+ "argumentTypes": [
2048
+ {
2049
+ "typeIdentifier": "t_userDefinedValueType$_Hook_$28246",
2050
+ "typeString": "Hook"
2051
+ }
2052
+ ],
2053
+ "id": 28382,
2054
+ "name": "getBitmap",
2055
+ "nodeType": "Identifier",
2056
+ "overloadedDeclarations": [],
2057
+ "referencedDeclaration": 28434,
2058
+ "src": "2981:9:57",
2059
+ "typeDescriptions": {
2060
+ "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Hook_$28246_$returns$_t_uint8_$",
2061
+ "typeString": "function (Hook) pure returns (uint8)"
2062
+ }
2063
+ },
2064
+ "id": 28384,
2065
+ "isConstant": false,
2066
+ "isLValue": false,
2067
+ "isPure": false,
2068
+ "kind": "functionCall",
2069
+ "lValueRequested": false,
2070
+ "nameLocations": [],
2071
+ "names": [],
2072
+ "nodeType": "FunctionCall",
2073
+ "src": "2981:15:57",
2074
+ "tryCall": false,
2075
+ "typeDescriptions": {
2076
+ "typeIdentifier": "t_uint8",
2077
+ "typeString": "uint8"
2078
+ }
2079
+ },
2080
+ "nodeType": "BinaryOperation",
2081
+ "operator": "&",
2082
+ "rightExpression": {
2083
+ "id": 28385,
2084
+ "name": "hookTypes",
2085
+ "nodeType": "Identifier",
2086
+ "overloadedDeclarations": [],
2087
+ "referencedDeclaration": 28377,
2088
+ "src": "2999:9:57",
2089
+ "typeDescriptions": {
2090
+ "typeIdentifier": "t_uint8",
2091
+ "typeString": "uint8"
2092
+ }
2093
+ },
2094
+ "src": "2981:27:57",
2095
+ "typeDescriptions": {
2096
+ "typeIdentifier": "t_uint8",
2097
+ "typeString": "uint8"
2098
+ }
2099
+ }
2100
+ ],
2101
+ "id": 28387,
2102
+ "isConstant": false,
2103
+ "isInlineArray": false,
2104
+ "isLValue": false,
2105
+ "isPure": false,
2106
+ "lValueRequested": false,
2107
+ "nodeType": "TupleExpression",
2108
+ "src": "2980:29:57",
2109
+ "typeDescriptions": {
2110
+ "typeIdentifier": "t_uint8",
2111
+ "typeString": "uint8"
2112
+ }
2113
+ },
2114
+ "nodeType": "BinaryOperation",
2115
+ "operator": "==",
2116
+ "rightExpression": {
2117
+ "id": 28388,
2118
+ "name": "hookTypes",
2119
+ "nodeType": "Identifier",
2120
+ "overloadedDeclarations": [],
2121
+ "referencedDeclaration": 28377,
2122
+ "src": "3013:9:57",
2123
+ "typeDescriptions": {
2124
+ "typeIdentifier": "t_uint8",
2125
+ "typeString": "uint8"
2126
+ }
2127
+ },
2128
+ "src": "2980:42:57",
2129
+ "typeDescriptions": {
2130
+ "typeIdentifier": "t_bool",
2131
+ "typeString": "bool"
2132
+ }
2133
+ },
2134
+ "functionReturnParameters": 28381,
2135
+ "id": 28390,
2136
+ "nodeType": "Return",
2137
+ "src": "2973:49:57"
2138
+ }
2139
+ ]
2140
+ },
2141
+ "documentation": {
2142
+ "id": 28372,
2143
+ "nodeType": "StructuredDocumentation",
2144
+ "src": "2579:309:57",
2145
+ "text": " @notice Check if the given hook types are enabled in the hook.\n @dev We check multiple hook types at once by using a bitmap.\n @param self The Hook instance to check.\n @param hookTypes A bitmap of hook types to check.\n @return True if the hook types are enabled, false otherwise."
2146
+ },
2147
+ "implemented": true,
2148
+ "kind": "function",
2149
+ "modifiers": [],
2150
+ "name": "isEnabled",
2151
+ "nameLocation": "2900:9:57",
2152
+ "parameters": {
2153
+ "id": 28378,
2154
+ "nodeType": "ParameterList",
2155
+ "parameters": [
2156
+ {
2157
+ "constant": false,
2158
+ "id": 28375,
2159
+ "mutability": "mutable",
2160
+ "name": "self",
2161
+ "nameLocation": "2915:4:57",
2162
+ "nodeType": "VariableDeclaration",
2163
+ "scope": 28392,
2164
+ "src": "2910:9:57",
2165
+ "stateVariable": false,
2166
+ "storageLocation": "default",
2167
+ "typeDescriptions": {
2168
+ "typeIdentifier": "t_userDefinedValueType$_Hook_$28246",
2169
+ "typeString": "Hook"
2170
+ },
2171
+ "typeName": {
2172
+ "id": 28374,
2173
+ "nodeType": "UserDefinedTypeName",
2174
+ "pathNode": {
2175
+ "id": 28373,
2176
+ "name": "Hook",
2177
+ "nameLocations": [
2178
+ "2910:4:57"
2179
+ ],
2180
+ "nodeType": "IdentifierPath",
2181
+ "referencedDeclaration": 28246,
2182
+ "src": "2910:4:57"
2183
+ },
2184
+ "referencedDeclaration": 28246,
2185
+ "src": "2910:4:57",
2186
+ "typeDescriptions": {
2187
+ "typeIdentifier": "t_userDefinedValueType$_Hook_$28246",
2188
+ "typeString": "Hook"
2189
+ }
2190
+ },
2191
+ "visibility": "internal"
2192
+ },
2193
+ {
2194
+ "constant": false,
2195
+ "id": 28377,
2196
+ "mutability": "mutable",
2197
+ "name": "hookTypes",
2198
+ "nameLocation": "2927:9:57",
2199
+ "nodeType": "VariableDeclaration",
2200
+ "scope": 28392,
2201
+ "src": "2921:15:57",
2202
+ "stateVariable": false,
2203
+ "storageLocation": "default",
2204
+ "typeDescriptions": {
2205
+ "typeIdentifier": "t_uint8",
2206
+ "typeString": "uint8"
2207
+ },
2208
+ "typeName": {
2209
+ "id": 28376,
2210
+ "name": "uint8",
2211
+ "nodeType": "ElementaryTypeName",
2212
+ "src": "2921:5:57",
2213
+ "typeDescriptions": {
2214
+ "typeIdentifier": "t_uint8",
2215
+ "typeString": "uint8"
2216
+ }
2217
+ },
2218
+ "visibility": "internal"
2219
+ }
2220
+ ],
2221
+ "src": "2909:28:57"
2222
+ },
2223
+ "returnParameters": {
2224
+ "id": 28381,
2225
+ "nodeType": "ParameterList",
2226
+ "parameters": [
2227
+ {
2228
+ "constant": false,
2229
+ "id": 28380,
2230
+ "mutability": "mutable",
2231
+ "name": "",
2232
+ "nameLocation": "-1:-1:-1",
2233
+ "nodeType": "VariableDeclaration",
2234
+ "scope": 28392,
2235
+ "src": "2961:4:57",
2236
+ "stateVariable": false,
2237
+ "storageLocation": "default",
2238
+ "typeDescriptions": {
2239
+ "typeIdentifier": "t_bool",
2240
+ "typeString": "bool"
2241
+ },
2242
+ "typeName": {
2243
+ "id": 28379,
2244
+ "name": "bool",
2245
+ "nodeType": "ElementaryTypeName",
2246
+ "src": "2961:4:57",
2247
+ "typeDescriptions": {
2248
+ "typeIdentifier": "t_bool",
2249
+ "typeString": "bool"
2250
+ }
2251
+ },
2252
+ "visibility": "internal"
2253
+ }
2254
+ ],
2255
+ "src": "2960:6:57"
2256
+ },
2257
+ "scope": 28435,
2258
+ "stateMutability": "pure",
2259
+ "virtual": false,
2260
+ "visibility": "internal"
2261
+ },
2262
+ {
2263
+ "id": 28413,
2264
+ "nodeType": "FunctionDefinition",
2265
+ "src": "3262:170:57",
2266
+ "nodes": [],
2267
+ "body": {
2268
+ "id": 28412,
2269
+ "nodeType": "Block",
2270
+ "src": "3325:107:57",
2271
+ "nodes": [],
2272
+ "statements": [
2273
+ {
2274
+ "expression": {
2275
+ "arguments": [
2276
+ {
2277
+ "arguments": [
2278
+ {
2279
+ "arguments": [
2280
+ {
2281
+ "id": 28407,
2282
+ "name": "self",
2283
+ "nodeType": "Identifier",
2284
+ "overloadedDeclarations": [],
2285
+ "referencedDeclaration": 28396,
2286
+ "src": "3420:4:57",
2287
+ "typeDescriptions": {
2288
+ "typeIdentifier": "t_userDefinedValueType$_Hook_$28246",
2289
+ "typeString": "Hook"
2290
+ }
2291
+ }
2292
+ ],
2293
+ "expression": {
2294
+ "argumentTypes": [
2295
+ {
2296
+ "typeIdentifier": "t_userDefinedValueType$_Hook_$28246",
2297
+ "typeString": "Hook"
2298
+ }
2299
+ ],
2300
+ "expression": {
2301
+ "id": 28405,
2302
+ "name": "Hook",
2303
+ "nodeType": "Identifier",
2304
+ "overloadedDeclarations": [],
2305
+ "referencedDeclaration": 28246,
2306
+ "src": "3408:4:57",
2307
+ "typeDescriptions": {
2308
+ "typeIdentifier": "t_type$_t_userDefinedValueType$_Hook_$28246_$",
2309
+ "typeString": "type(Hook)"
2310
+ }
2311
+ },
2312
+ "id": 28406,
2313
+ "isConstant": false,
2314
+ "isLValue": false,
2315
+ "isPure": true,
2316
+ "lValueRequested": false,
2317
+ "memberLocation": "3413:6:57",
2318
+ "memberName": "unwrap",
2319
+ "nodeType": "MemberAccess",
2320
+ "src": "3408:11:57",
2321
+ "typeDescriptions": {
2322
+ "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Hook_$28246_$returns$_t_bytes21_$",
2323
+ "typeString": "function (Hook) pure returns (bytes21)"
2324
+ }
2325
+ },
2326
+ "id": 28408,
2327
+ "isConstant": false,
2328
+ "isLValue": false,
2329
+ "isPure": false,
2330
+ "kind": "functionCall",
2331
+ "lValueRequested": false,
2332
+ "nameLocations": [],
2333
+ "names": [],
2334
+ "nodeType": "FunctionCall",
2335
+ "src": "3408:17:57",
2336
+ "tryCall": false,
2337
+ "typeDescriptions": {
2338
+ "typeIdentifier": "t_bytes21",
2339
+ "typeString": "bytes21"
2340
+ }
2341
+ }
2342
+ ],
2343
+ "expression": {
2344
+ "argumentTypes": [
2345
+ {
2346
+ "typeIdentifier": "t_bytes21",
2347
+ "typeString": "bytes21"
2348
+ }
2349
+ ],
2350
+ "id": 28404,
2351
+ "isConstant": false,
2352
+ "isLValue": false,
2353
+ "isPure": true,
2354
+ "lValueRequested": false,
2355
+ "nodeType": "ElementaryTypeNameExpression",
2356
+ "src": "3400:7:57",
2357
+ "typeDescriptions": {
2358
+ "typeIdentifier": "t_type$_t_bytes20_$",
2359
+ "typeString": "type(bytes20)"
2360
+ },
2361
+ "typeName": {
2362
+ "id": 28403,
2363
+ "name": "bytes20",
2364
+ "nodeType": "ElementaryTypeName",
2365
+ "src": "3400:7:57",
2366
+ "typeDescriptions": {}
2367
+ }
2368
+ },
2369
+ "id": 28409,
2370
+ "isConstant": false,
2371
+ "isLValue": false,
2372
+ "isPure": false,
2373
+ "kind": "typeConversion",
2374
+ "lValueRequested": false,
2375
+ "nameLocations": [],
2376
+ "names": [],
2377
+ "nodeType": "FunctionCall",
2378
+ "src": "3400:26:57",
2379
+ "tryCall": false,
2380
+ "typeDescriptions": {
2381
+ "typeIdentifier": "t_bytes20",
2382
+ "typeString": "bytes20"
2383
+ }
2384
+ }
2385
+ ],
2386
+ "expression": {
2387
+ "argumentTypes": [
2388
+ {
2389
+ "typeIdentifier": "t_bytes20",
2390
+ "typeString": "bytes20"
2391
+ }
2392
+ ],
2393
+ "id": 28402,
2394
+ "isConstant": false,
2395
+ "isLValue": false,
2396
+ "isPure": true,
2397
+ "lValueRequested": false,
2398
+ "nodeType": "ElementaryTypeNameExpression",
2399
+ "src": "3392:7:57",
2400
+ "typeDescriptions": {
2401
+ "typeIdentifier": "t_type$_t_address_$",
2402
+ "typeString": "type(address)"
2403
+ },
2404
+ "typeName": {
2405
+ "id": 28401,
2406
+ "name": "address",
2407
+ "nodeType": "ElementaryTypeName",
2408
+ "src": "3392:7:57",
2409
+ "typeDescriptions": {}
2410
+ }
2411
+ },
2412
+ "id": 28410,
2413
+ "isConstant": false,
2414
+ "isLValue": false,
2415
+ "isPure": false,
2416
+ "kind": "typeConversion",
2417
+ "lValueRequested": false,
2418
+ "nameLocations": [],
2419
+ "names": [],
2420
+ "nodeType": "FunctionCall",
2421
+ "src": "3392:35:57",
2422
+ "tryCall": false,
2423
+ "typeDescriptions": {
2424
+ "typeIdentifier": "t_address",
2425
+ "typeString": "address"
2426
+ }
2427
+ },
2428
+ "functionReturnParameters": 28400,
2429
+ "id": 28411,
2430
+ "nodeType": "Return",
2431
+ "src": "3385:42:57"
2432
+ }
2433
+ ]
2434
+ },
2435
+ "documentation": {
2436
+ "id": 28393,
2437
+ "nodeType": "StructuredDocumentation",
2438
+ "src": "3031:228:57",
2439
+ "text": " @notice Get the address from the hook.\n @dev The address is stored in the leftmost 20 bytes.\n @param self The Hook instance to get the address from.\n @return The address contained in the Hook instance."
2440
+ },
2441
+ "implemented": true,
2442
+ "kind": "function",
2443
+ "modifiers": [],
2444
+ "name": "getAddress",
2445
+ "nameLocation": "3271:10:57",
2446
+ "parameters": {
2447
+ "id": 28397,
2448
+ "nodeType": "ParameterList",
2449
+ "parameters": [
2450
+ {
2451
+ "constant": false,
2452
+ "id": 28396,
2453
+ "mutability": "mutable",
2454
+ "name": "self",
2455
+ "nameLocation": "3287:4:57",
2456
+ "nodeType": "VariableDeclaration",
2457
+ "scope": 28413,
2458
+ "src": "3282:9:57",
2459
+ "stateVariable": false,
2460
+ "storageLocation": "default",
2461
+ "typeDescriptions": {
2462
+ "typeIdentifier": "t_userDefinedValueType$_Hook_$28246",
2463
+ "typeString": "Hook"
2464
+ },
2465
+ "typeName": {
2466
+ "id": 28395,
2467
+ "nodeType": "UserDefinedTypeName",
2468
+ "pathNode": {
2469
+ "id": 28394,
2470
+ "name": "Hook",
2471
+ "nameLocations": [
2472
+ "3282:4:57"
2473
+ ],
2474
+ "nodeType": "IdentifierPath",
2475
+ "referencedDeclaration": 28246,
2476
+ "src": "3282:4:57"
2477
+ },
2478
+ "referencedDeclaration": 28246,
2479
+ "src": "3282:4:57",
2480
+ "typeDescriptions": {
2481
+ "typeIdentifier": "t_userDefinedValueType$_Hook_$28246",
2482
+ "typeString": "Hook"
2483
+ }
2484
+ },
2485
+ "visibility": "internal"
2486
+ }
2487
+ ],
2488
+ "src": "3281:11:57"
2489
+ },
2490
+ "returnParameters": {
2491
+ "id": 28400,
2492
+ "nodeType": "ParameterList",
2493
+ "parameters": [
2494
+ {
2495
+ "constant": false,
2496
+ "id": 28399,
2497
+ "mutability": "mutable",
2498
+ "name": "",
2499
+ "nameLocation": "-1:-1:-1",
2500
+ "nodeType": "VariableDeclaration",
2501
+ "scope": 28413,
2502
+ "src": "3316:7:57",
2503
+ "stateVariable": false,
2504
+ "storageLocation": "default",
2505
+ "typeDescriptions": {
2506
+ "typeIdentifier": "t_address",
2507
+ "typeString": "address"
2508
+ },
2509
+ "typeName": {
2510
+ "id": 28398,
2511
+ "name": "address",
2512
+ "nodeType": "ElementaryTypeName",
2513
+ "src": "3316:7:57",
2514
+ "stateMutability": "nonpayable",
2515
+ "typeDescriptions": {
2516
+ "typeIdentifier": "t_address",
2517
+ "typeString": "address"
2518
+ }
2519
+ },
2520
+ "visibility": "internal"
2521
+ }
2522
+ ],
2523
+ "src": "3315:9:57"
2524
+ },
2525
+ "scope": 28435,
2526
+ "stateMutability": "pure",
2527
+ "virtual": false,
2528
+ "visibility": "internal"
2529
+ },
2530
+ {
2531
+ "id": 28434,
2532
+ "nodeType": "FunctionDefinition",
2533
+ "src": "3660:162:57",
2534
+ "nodes": [],
2535
+ "body": {
2536
+ "id": 28433,
2537
+ "nodeType": "Block",
2538
+ "src": "3720:102:57",
2539
+ "nodes": [],
2540
+ "statements": [
2541
+ {
2542
+ "expression": {
2543
+ "arguments": [
2544
+ {
2545
+ "arguments": [
2546
+ {
2547
+ "arguments": [
2548
+ {
2549
+ "id": 28428,
2550
+ "name": "self",
2551
+ "nodeType": "Identifier",
2552
+ "overloadedDeclarations": [],
2553
+ "referencedDeclaration": 28417,
2554
+ "src": "3810:4:57",
2555
+ "typeDescriptions": {
2556
+ "typeIdentifier": "t_userDefinedValueType$_Hook_$28246",
2557
+ "typeString": "Hook"
2558
+ }
2559
+ }
2560
+ ],
2561
+ "expression": {
2562
+ "argumentTypes": [
2563
+ {
2564
+ "typeIdentifier": "t_userDefinedValueType$_Hook_$28246",
2565
+ "typeString": "Hook"
2566
+ }
2567
+ ],
2568
+ "expression": {
2569
+ "id": 28426,
2570
+ "name": "Hook",
2571
+ "nodeType": "Identifier",
2572
+ "overloadedDeclarations": [],
2573
+ "referencedDeclaration": 28246,
2574
+ "src": "3798:4:57",
2575
+ "typeDescriptions": {
2576
+ "typeIdentifier": "t_type$_t_userDefinedValueType$_Hook_$28246_$",
2577
+ "typeString": "type(Hook)"
2578
+ }
2579
+ },
2580
+ "id": 28427,
2581
+ "isConstant": false,
2582
+ "isLValue": false,
2583
+ "isPure": true,
2584
+ "lValueRequested": false,
2585
+ "memberLocation": "3803:6:57",
2586
+ "memberName": "unwrap",
2587
+ "nodeType": "MemberAccess",
2588
+ "src": "3798:11:57",
2589
+ "typeDescriptions": {
2590
+ "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Hook_$28246_$returns$_t_bytes21_$",
2591
+ "typeString": "function (Hook) pure returns (bytes21)"
2592
+ }
2593
+ },
2594
+ "id": 28429,
2595
+ "isConstant": false,
2596
+ "isLValue": false,
2597
+ "isPure": false,
2598
+ "kind": "functionCall",
2599
+ "lValueRequested": false,
2600
+ "nameLocations": [],
2601
+ "names": [],
2602
+ "nodeType": "FunctionCall",
2603
+ "src": "3798:17:57",
2604
+ "tryCall": false,
2605
+ "typeDescriptions": {
2606
+ "typeIdentifier": "t_bytes21",
2607
+ "typeString": "bytes21"
2608
+ }
2609
+ }
2610
+ ],
2611
+ "expression": {
2612
+ "argumentTypes": [
2613
+ {
2614
+ "typeIdentifier": "t_bytes21",
2615
+ "typeString": "bytes21"
2616
+ }
2617
+ ],
2618
+ "id": 28425,
2619
+ "isConstant": false,
2620
+ "isLValue": false,
2621
+ "isPure": true,
2622
+ "lValueRequested": false,
2623
+ "nodeType": "ElementaryTypeNameExpression",
2624
+ "src": "3790:7:57",
2625
+ "typeDescriptions": {
2626
+ "typeIdentifier": "t_type$_t_uint168_$",
2627
+ "typeString": "type(uint168)"
2628
+ },
2629
+ "typeName": {
2630
+ "id": 28424,
2631
+ "name": "uint168",
2632
+ "nodeType": "ElementaryTypeName",
2633
+ "src": "3790:7:57",
2634
+ "typeDescriptions": {}
2635
+ }
2636
+ },
2637
+ "id": 28430,
2638
+ "isConstant": false,
2639
+ "isLValue": false,
2640
+ "isPure": false,
2641
+ "kind": "typeConversion",
2642
+ "lValueRequested": false,
2643
+ "nameLocations": [],
2644
+ "names": [],
2645
+ "nodeType": "FunctionCall",
2646
+ "src": "3790:26:57",
2647
+ "tryCall": false,
2648
+ "typeDescriptions": {
2649
+ "typeIdentifier": "t_uint168",
2650
+ "typeString": "uint168"
2651
+ }
2652
+ }
2653
+ ],
2654
+ "expression": {
2655
+ "argumentTypes": [
2656
+ {
2657
+ "typeIdentifier": "t_uint168",
2658
+ "typeString": "uint168"
2659
+ }
2660
+ ],
2661
+ "id": 28423,
2662
+ "isConstant": false,
2663
+ "isLValue": false,
2664
+ "isPure": true,
2665
+ "lValueRequested": false,
2666
+ "nodeType": "ElementaryTypeNameExpression",
2667
+ "src": "3784:5:57",
2668
+ "typeDescriptions": {
2669
+ "typeIdentifier": "t_type$_t_uint8_$",
2670
+ "typeString": "type(uint8)"
2671
+ },
2672
+ "typeName": {
2673
+ "id": 28422,
2674
+ "name": "uint8",
2675
+ "nodeType": "ElementaryTypeName",
2676
+ "src": "3784:5:57",
2677
+ "typeDescriptions": {}
2678
+ }
2679
+ },
2680
+ "id": 28431,
2681
+ "isConstant": false,
2682
+ "isLValue": false,
2683
+ "isPure": false,
2684
+ "kind": "typeConversion",
2685
+ "lValueRequested": false,
2686
+ "nameLocations": [],
2687
+ "names": [],
2688
+ "nodeType": "FunctionCall",
2689
+ "src": "3784:33:57",
2690
+ "tryCall": false,
2691
+ "typeDescriptions": {
2692
+ "typeIdentifier": "t_uint8",
2693
+ "typeString": "uint8"
2694
+ }
2695
+ },
2696
+ "functionReturnParameters": 28421,
2697
+ "id": 28432,
2698
+ "nodeType": "Return",
2699
+ "src": "3777:40:57"
2700
+ }
2701
+ ]
2702
+ },
2703
+ "documentation": {
2704
+ "id": 28414,
2705
+ "nodeType": "StructuredDocumentation",
2706
+ "src": "3436:221:57",
2707
+ "text": " @notice Get the bitmap from the hook.\n @dev The bitmap is stored in the rightmost byte.\n @param self The Hook instance to get the bitmap from.\n @return The bitmap contained in the Hook instance."
2708
+ },
2709
+ "implemented": true,
2710
+ "kind": "function",
2711
+ "modifiers": [],
2712
+ "name": "getBitmap",
2713
+ "nameLocation": "3669:9:57",
2714
+ "parameters": {
2715
+ "id": 28418,
2716
+ "nodeType": "ParameterList",
2717
+ "parameters": [
2718
+ {
2719
+ "constant": false,
2720
+ "id": 28417,
2721
+ "mutability": "mutable",
2722
+ "name": "self",
2723
+ "nameLocation": "3684:4:57",
2724
+ "nodeType": "VariableDeclaration",
2725
+ "scope": 28434,
2726
+ "src": "3679:9:57",
2727
+ "stateVariable": false,
2728
+ "storageLocation": "default",
2729
+ "typeDescriptions": {
2730
+ "typeIdentifier": "t_userDefinedValueType$_Hook_$28246",
2731
+ "typeString": "Hook"
2732
+ },
2733
+ "typeName": {
2734
+ "id": 28416,
2735
+ "nodeType": "UserDefinedTypeName",
2736
+ "pathNode": {
2737
+ "id": 28415,
2738
+ "name": "Hook",
2739
+ "nameLocations": [
2740
+ "3679:4:57"
2741
+ ],
2742
+ "nodeType": "IdentifierPath",
2743
+ "referencedDeclaration": 28246,
2744
+ "src": "3679:4:57"
2745
+ },
2746
+ "referencedDeclaration": 28246,
2747
+ "src": "3679:4:57",
2748
+ "typeDescriptions": {
2749
+ "typeIdentifier": "t_userDefinedValueType$_Hook_$28246",
2750
+ "typeString": "Hook"
2751
+ }
2752
+ },
2753
+ "visibility": "internal"
2754
+ }
2755
+ ],
2756
+ "src": "3678:11:57"
2757
+ },
2758
+ "returnParameters": {
2759
+ "id": 28421,
2760
+ "nodeType": "ParameterList",
2761
+ "parameters": [
2762
+ {
2763
+ "constant": false,
2764
+ "id": 28420,
2765
+ "mutability": "mutable",
2766
+ "name": "",
2767
+ "nameLocation": "-1:-1:-1",
2768
+ "nodeType": "VariableDeclaration",
2769
+ "scope": 28434,
2770
+ "src": "3713:5:57",
2771
+ "stateVariable": false,
2772
+ "storageLocation": "default",
2773
+ "typeDescriptions": {
2774
+ "typeIdentifier": "t_uint8",
2775
+ "typeString": "uint8"
2776
+ },
2777
+ "typeName": {
2778
+ "id": 28419,
2779
+ "name": "uint8",
2780
+ "nodeType": "ElementaryTypeName",
2781
+ "src": "3713:5:57",
2782
+ "typeDescriptions": {
2783
+ "typeIdentifier": "t_uint8",
2784
+ "typeString": "uint8"
2785
+ }
2786
+ },
2787
+ "visibility": "internal"
2788
+ }
2789
+ ],
2790
+ "src": "3712:7:57"
2791
+ },
2792
+ "scope": 28435,
2793
+ "stateMutability": "pure",
2794
+ "virtual": false,
2795
+ "visibility": "internal"
2796
+ }
2797
+ ],
2798
+ "abstract": false,
2799
+ "baseContracts": [],
2800
+ "canonicalName": "HookInstance",
2801
+ "contractDependencies": [],
2802
+ "contractKind": "library",
2803
+ "documentation": {
2804
+ "id": 28371,
2805
+ "nodeType": "StructuredDocumentation",
2806
+ "src": "2469:84:57",
2807
+ "text": " @title HookInstance\n @dev Library for interacting with Hook instances.*"
2808
+ },
2809
+ "fullyImplemented": true,
2810
+ "linearizedBaseContracts": [
2811
+ 28435
2812
+ ],
2813
+ "name": "HookInstance",
2814
+ "nameLocation": "2562:12:57",
2815
+ "scope": 28436,
2816
+ "usedErrors": [],
2817
+ "usedEvents": []
2818
+ }
2819
+ ],
2820
+ "license": "MIT"
2821
+ },
2822
+ "id": 57
2823
+ }